質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

Q&A

0回答

1360閲覧

IIS上のWEBAPIから別サーバのWEBサービスへアクセスできない

kamiy_001

総合スコア0

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

0グッド

0クリップ

投稿2021/01/19 05:04

編集2021/01/19 06:42

C#でWEBAPIを構築してIIS上に配置しています。
クライアントからIIS上のWEBAPIにアクセスし、さらにそのWEBAPIから別のWEBサービスへアクセスしその結果をクライアントへ返却
したいと思っています。

ローカル環境(IISExpress)では、問題なく稼働するのですが、
IISへデプロイすると、WEBサービスへのアクセスのある箇所でタイムアウトが発生します。

また、ローカル環境では問題なく、パケットキャプチャにでアクセスしていることを確認できますが、
IIS上ではパケットキャプチャに表示もされなくステータスコードも確認できませんでした。

そもそもIIS上に配置しているWEBAPIから別サーバのWEBサービスにアクセス可能なのでしょうか?
できる、できないの文献があまりなくなまじローカル稼働で行えている為判断ができません。

WEBサービス参照の追加を行い。
WEBサービスへアクセスしています。

var ws = webサービス参照で追加した項目;
ws.ClientCredentials.UserName.UserName = wsUserName;
ws.ClientCredentials.UserName.Password = wsPassWord;
ws.Connect(wsSystemID, wsLoginID, wsLoginPwd);
strData = ws.GetDataXML(param);
ws.DisConnect();
ws.Close();

-- web.config
<system.serviceModel>
<protocolMapping>
<remove scheme="http" />
<add scheme="http" binding="wsHttpBinding" />
<add scheme="https" binding="wsHttpBinding" />
</protocolMapping>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_class1">
<reliableSession enabled="true" />
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None" />
</security>
</binding>
<binding name="WSHttpBinding_class12" maxBufferPoolSize="4288" maxReceivedMessageSize="2147483647" openTimeout="01:00:00" closeTimeout="01:00:00" sendTimeout="01:00:00" receiveTimeout="01:00:00">
<reliableSession enabled="true" />
<readerQuotas maxDepth="32" maxStringContentLength="819200000" maxArrayLength="2147483647" maxBytesPerRead="2147483647" />
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None" />
<message clientCredentialType="UserName" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="https://hogehoge.jp/hogehoge.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_class12" contract="ServiceReference.clshogehoge" name="WSHttpBinding_class1" />
</client>
</system.serviceModel>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YT0014

2021/01/19 07:03

デプロイ先の、FireWallなどによる接続遮断の有無をご確認ください。
kamiy_001

2021/01/19 08:53

回答ありがとうございます。 デプロイ先の状況確認しました。WindowsFW等も無効にして検証してもやはり同様でした。 WindowsFormの接続確認用のプログラムを作成した結果、IISのAPIからの接続はできませんが、 確認用プログラムからは問題なく接続が行えています。 IIS上で何かしらの設定が必要なのでしょうか? 発生していた箇所はConnect()の箇所で 発生していたエラーは System.TimeoutException: 要求チャネルは、送信を試行してから 00:00:00 後にタイムアウトしました。Request の呼び出しに渡すタイムアウト値を増やすか、Binding の SendTimeout 値を増やしてください。この操作に割り当てられた時間は、より長いタイムアウト時間の一部であった可能性があります。 ---> System.TimeoutException: 'https://hogehoge.svc' に対する HTTP 要求が、割り当てられたタイムアウト時間 00:00:00 を超えました。この操作に割り当てられた時間は、より長いタイムアウト時間の一部であった可能性があります。 場所 System.ServiceModel.Channels.HttpChannelUtilities.SetRequestTimeout(HttpWebRequest request, TimeSpan timeout) 場所 System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.SendRequest(Message message, TimeSpan timeout) 場所 System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) です。 投稿にもあるようにsendtimeoutも1:00:00設定している為十分とっていると思うのですが…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問