1


0

私はSilverlightプロジェクトに追加したWCFサービスを持っており、現在はVisual StudioのASP.NET Dev Serverでホスティングしています。 しかし、実行しようとすると、次のエラーが発生します。

System.ServiceModel.CommunicationExceptionがユーザーコードで処理されませんでしたメッセージ= "URI 'http:// localhost:51547 / WCFService1 / Service.svc'への要求を試行中にエラーが発生しました。

これは、適切なクロスドメインポリシーが設定されていないか、またはSOAPサービスには不適切なポリシーで、クロスドメイン方式でサービスにアクセスしようとしたためと考えられます。 サービスの所有者に連絡して、クロスドメインポリシーファイルを公開し、そのファイルでSOAP関連のHTTPヘッダーを送信できるようにする必要があります。 このエラーは、InternalsVisibleToAttribute属性を使用せずにWebサービスプロキシで内部型を使用することによっても発生する可能性があります。 詳細については、内部の例外を参照してください。 "StackTrace:at System.ServiceModel.AsyncResult.End [TAsyncResult](IAsyncResult結果)at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult結果)System.ServiceModel.Channels。 System.ServiceModel.ClientBase`1.ChannelBase`1.EndInvoke(String methodName、Object [] args、IAsyncResult結果)のServiceChannel.EndCall(Stringアクション、Object [] outs、IAsyncResultの結果) System.ServiceModel.ClientBase`1.OnAsyncCallCompletedでniki_lanik_latestnews.WCFXmlOps.IxmlLoadClient.OnEndLoadArticleFromXMLでniki_lanik_latestnews.WCFXmlOps.IxmlLoadClient.niki_lanik_latestnews.WCFXmlOps.IxmlLoad.EndLoadArticleFromXML(たIAsyncResult結果)(たIAsyncResult結果)でEndLoadArticleFromXML(たIAsyncResult結果)(たIAsyncResult結果)のInnerException :System.Security.SecurityExceptionメッセージ= "" StackTrace:System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod、オブジェクト状態)System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) InnerException:System.Security.SecurityException Message = "セキュリティエラー"。StackTrace:at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)at System.Net.Browser.BrowserHttpWebRequest.c__DisplayClass5.b__4(Object sendState) Net.Browser.AsyncHelper.c__DisplayClass2.b__0(Object sendState)InnerException:

それは同じプロジェクトの中にあるようにクロスドメインでホストされていない、それで私はこれが何を引き起こしているのかわからない? 任意のアイデア誰?

トニー

更新

以下はweb.configの私のバインディング設定です。


このサービスはダウンロードを想定しています。

1 Answer


2


私はあなたのウェブサイトのルートに "clientaccesspolicy.xml"ファイルを以下の内容で追加することをお勧めします(少なくともトラブルシューティングのステップとして)。 あなたが受けているエラーはこれが役立つことを示唆しているようです。

私は、Silverlightがクロスポート呼び出しをクロスドメイン(つまりドメイン間)と見なしていることを理解しています。 localhost:51547とlocalhost:4000は別のドメインです)。


  • [編集] *

それを機能させるための最初のことは、ホストされているサービスに直接接続できることですので、私は私が遭遇した問題のいくつかのアイデアを捨てます。

あなたのサービスにこの行がありますか?

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
パブリッククラスMyService {}

そしてWeb.Configのこの行?