これはおそらく非常に単純ですが、我慢してください。
単純なコピーアンドペースト手法を使用して、 WCFを使用してSilverlight 5アプリケーションをIISに展開すると、Webサイトを問題なく参照できますが、この192.168.1.3:8099のようなIPアドレスを介してアクセスしようとすると、すべてのサービス呼び出しで次のようなエラーが返されます。これとして:
An exception occurred during the operation, making the result invalid. Check InnerException for exception details.
at .....
at <MyNamespace>.OnGetSomethingFromDataBaseCompleted(Object state)
他のマシンからのWCFサービスを正常にターゲットにできます(192.168.1.3:8099/SomeService.svc)。サービスを呼び出す(そして閉じる)ためのテストコンソールアプリを作成しました。リモートDBServerからデータを正しく取得します。しかし、ブラウザでは何もありません。
192.168.1.3:8099に移動すると、ブラウザからそれを追加し直す必要があります。Fiddlerはこの呼び出しを登録しませんが、localhost:8099からは登録します。
手伝ってくれますか?
これは、私よりも展開の経験が豊富な人にとっては簡単な質問だと思いますが、そうすべきだと思われる場合は、読み進めてください。
だからあなたは=>(プリズム)を読んでいます。
WCFサービスを呼び出すデータベースに接続するSilverlightアプリケーションがあります(Silverlight WCFサービス-VSTemplateとして追加されました)。
このアプリケーションでは、 JeremyLiknessが彼のブログで示唆しているようにPrismを紹介します
また、Webプロキシを使用してViewModelからWCFサービスにアクセスします。
私のプロジェクト構造:
- WEBプロジェクト
- SilverlightAppWithShell
- ModuleA
- ModuleB
- CommonProject
デプロイメントディレクトリ構造:
C:\ inetpub \ wwwroot \ MyAppFolder(IISUsersにはaccessToItがあります)
- 。\bin\ AllDlls
- 。\ClientBin\ AllXapFiles(上記のすべてのプロジェクトのXAPファイル)
- 。\Services\ All*.csファイルはサービス運用契約を定義します
- 。\Web.config
- 。\TestPage.html
- 。\TestPage.aspx
- 。\Silverlight.js
- 。\AllServices*.scvファイル
最後になりましたが、
- 。\clientaccesspolicy.xml
その中にこのコードがあります:
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>"
</allow-from>
<grant-to>
<resource path="/Services" include-subpaths="true"/><!--I tried with App_Code here when renaming Services dir to App_Code with the same wain result-->
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
読んでくれてありがとう