1

開発サーバーから Web サービスにアクセスしようとすると、以下のエラーが返されます。ローカル マシンから同じサービスにアクセスすると、問題なく動作します。何が原因か分かりますか?事前にどうもありがとうございました!

System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (405) Method Not Allowed. ---> System.Net.WebException: The remote server returned an error: (405) Method Not Allowed.
   at System.Net.HttpWebRequest.GetResponse()
   at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   --- End of inner exception stack trace ---

Server stack trace:
   at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factory, WebException responseException, ChannelBinding channelBinding)
   at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at Portal.ExportSvcReference.IExportDataService.AddDataRequest(ExportData request)
4

1 に答える 1

2

405エラーは、多くの場合、クロスドメインの問題が原因で発生します。サービスをデプロイしたが、ローカルホスト(または別のデプロイメント)のクライアントからテストしている場合、すべてが同じローカルホストドメインで実行されていないため、クロスドメイン呼び出しを有効にする必要があります。

クロスドメインスクリプティングを有効にする良い例はここにあります: wcfサービスを消費するためにjqueryajaxでクロスドメインポリシーを回避する方法は?

@Monkieboyが言うように、web.configファイルを見ずに診断するのは少し難しいですが、使用しているバインディングを追加crossDomainScriptAccessEnabled="true"して、それが役立つかどうかを確認してみてください。

于 2012-08-30T13:37:51.467 に答える