Silverlight アプリケーションを使用して 1 か月以上になりますが、奇妙な問題に遭遇しました。IIS で実行されている WCF サービスがあり、URL からアクセスできます: https://xyztestname.com/service1.svc
これをビジュアル スタジオで使用することができ、ビジュアル スタジオからデプロイすると、WCF サービスから適切なコールバックを取得でき、すべて正常に動作します。パッケージ ファイルを IIS の Service1.svc と同じフォルダーに展開すると、WCF サービスが正しくヒットしません。
この問題の解決を手伝ってください :(! これが私の web.config ファイルです。
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<customErrors mode="Off"/>
</system.web>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpEndpointBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="None" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="InformationService.Service1">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpEndpointBinding"
name="BasicHttpEndpoint" contract="InformationService.IService1">
</endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
</configuration>
どこが間違っているのかわかりません。ただし、イントラネット経由でアクセスした場合は同じ仮想フォルダーが正常に機能しますが、インターネット経由でアクセスした場合は機能しません:(助けてください。
編集: クライアント構成を確認した後、Visual Studio が URL をイントラネット URL に自動的に解決することがわかりました。インターネット URL に戻すと、例外がスローされます。
URI 'https://xyztestname.com/Service1.svc' へのリクエストを試行中にエラーが発生しました。これは、適切なクロスドメイン ポリシーを設定せずにクロスドメイン方式でサービスにアクセスしようとしたか、SOAP サービスに不適切なポリシーが原因である可能性があります。クロスドメイン ポリシー ファイルを公開し、SOAP 関連の HTTP ヘッダーを送信できるようにするために、サービスの所有者に連絡する必要がある場合があります。このエラーは、InternalsVisibleToAttribute 属性を使用せずに Web サービス プロキシで内部型を使用した場合にも発生する可能性があります。詳細については、内部例外を参照してください。
ただし、クロスドメイン ファイルと clientaccesspolicy ファイルの両方を IIS のアプリケーションのルートにコピーしました。:( 助けてください。