0

IIS で WCF サービスをホストした後、次のエラーが発生します。

HTTP エラー 500.0 - 内部サーバー エラーです。内部サーバーエラーが発生したため、ページを表示できません。

モジュール IsapiModule
通知 ExecuteRequestHandler
ハンドラー svc-ISAPI-4.0_32bit
エラー コード 0x00000000

安全な証明書 WCF サービスを持つ HTTPS です。この問題を解決するのを手伝ってください。

4

1 に答える 1

2

それは多くの異なることが原因である可能性があります。次の解決策を試す必要があります。

1 最初の方法

  1. サイトがあるフォルダー「C:\Users\NAME\SiteName」を右クリックし、[プロパティ] を選択します。
  2. [セキュリティ] タブを選択し、[編集] をクリックします。
  3. 追加して、「IIS_IUSRS」と入力します。

2 第二の方法

既定では、WCF サービスの OperationContracts は、HTTP POST を使用してのみ呼び出すことができます。Titanium HTTPClient で open() を呼び出すとき、HTTP メソッドのパラメーターに GET または POST を指定していますか?

次に、サービス バインディングは SOAP 1.1 を使用しているため、WCF がメッセージを GetData メソッドにルーティングできるように、要求で SOAPAction ヘッダーを渡す必要があります。Action パラメーターがサービスの OperationContract 属性で指定されていない場合、Action はメソッド名の前に名前空間とサービス コントラクト名を付けたものにする必要があります (既定の WCF を使用している場合は、おそらくhttp://tempuri.org/IService1/GetDataです)。アプリケーションが作成されます)。content-type も指定する必要があります。そのため、send を呼び出す前に、次のように xhr をセットアップする必要があります。

xhr.setRequestHeader('Content-Type', 'text/xml; charset=utf-16'); xhr.setRequestHeader('SOAPAction', '"http://tempuri.org/IService1/GetData"'); xhr.send(s); また、WCF サービス操作のアクションを明示的に指定することもできます。

[OperationContract(Action = "MyAction")] string GetData() { // ...中略... }

xhr.setRequestHeader('SOAPAction', '"MyAction"');

最後に、メソッドを [WebGet] 属性で装飾することにより、HTTP GET 経由でサービス操作を呼び出すことができます。これにより、操作を REST 形式で呼び出すことができます: http://msdn.microsoft.com/en-us/library/system.servicemodel.web.webgetattribute.aspx

于 2012-11-29T06:07:16.950 に答える