私のアプリケーションは、Silverlightコントロールを含むMVC3 Webサイトで構成されています。 MVC3アプリケーションでは、私はWCFサービスをホストしています。私はDBからデータを取得するためにSilverlightコントロールでそのサービスを使用します。SilverlightからアクセスするWCFサービス
MVCのWeb.configでサービスを次のように定義される。私が呼び出すメソッドである
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="OnlineCustomersTracker.Services.CustomersTrackerServiceAspNetAjaxBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
<services>
<service name="OnlineCustomersTracker.Services.CustomersTrackerService">
<endpoint address="" behaviorConfiguration="OnlineCustomersTracker.Services.CustomersTrackerServiceAspNetAjaxBehavior"
binding="webHttpBinding" contract="OnlineCustomersTracker.Services.CustomersTrackerService" />
</service>
</services>
:Silverlightで
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Xml)]
public string DoWork()
{
// Add your operation implementation here
return "Work done";
}
Iがサービスを呼び出す:
CustomersTrackerServiceClient client = new CustomersTrackerServiceClient(new BasicHttpBinding(),
new EndpointAddress(
"http://localhost:62535/Services/CustomersTrackerService.svc"));
client.DoWorkCompleted += new System.EventHandler<DoWorkCompletedEventArgs>(client_DoWorkCompleted);
client.DoWorkAsync();
Silverlightからサービスにアクセスしました。例外があります。リモートサーバーからエラーが返されました:NotFound。
奇妙な部分は、サービスがWebブラウザから機能していることです。私は間違って何かをしていますか? ?
私はFirefoxとSilverlightコントロールからのコールがサービスアドレスにポストやっているトレースさ:http://localhost:62535/Services/CustomersTrackerService.svcを。私のサービスは、取得リクエストのみを聞いているようです。投稿のリクエストを許可する方法はありますか?リクエストを取得するためにSilverlightでサービスを設定する方法はありますか?
クロスドメインとクライアントアクセスポリシーファイルを追加しようとしましたか?違いはありますか? –