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>
あなたの回答
tips
プレビュー