6

Windows Server 08、sp2 の IIS7 で WCF サービスをホストしています。サービスは独自の Web サイトとしてホストされ、NET.TCP エンドポイントを介して公開されます。サービスは、restart/iisreset コマンドが発行されるまで完全に機能します。

再起動または iisreset の後、サービス呼び出しを行うと、「System.ServiceModel.EndpointNotFoundException: サービスがエンドポイント アドレス 'net.tcp://[website]/[ service_name].svc' は、アドレスのプロトコルでは使用できません..'

サーバーのイベント ログに次のエラーが表示されます: 例外: System.ArgumentException メッセージ: プロトコル ID 'NET.TCP' が不明です。StackTrace: System.Web.Hosting.ProcessHost.StartProcessProtocolListenerChannel(String protocolId, IListenerChannelCallback listenerChannelCallback) で '

質問: これを修正するにはどうすればよいですか? iisreset 後に NET.TCP プロトコルが無効になるのはなぜですか? バグですか?いくつかの構成がありませんか?

IIS セットアップの詳細: - Server 08 および 08 R2 - バインディング: http、NET.TCP (808:*) - EnabledProtols: http、NET.TCP。- サイトの appPool の ID が特定のユーザーに設定されている。

ここで入手可能なサンプル コード: http://drop.io/wcfTcpSampleService

ありがとう

4

4 に答える 4

9

解決しました。問題は大文字と小文字の区別です。Web アプリケーションの AdvancedSettings では、EnabledProtocols フィールドは小文字、つまり「net.tcp」でなければなりません (MS サポートからこれを知りました)。

EnabledProtocols フィールドの説明 (「... NET.TCP などの値を追加...」) のため、「NET.TCP」は大文字にする必要があると (愚かにも​​) 想定しました。

奇妙で未知の問題は、初めて「NET.TCP」で動作する理由ですが、それは別の問題です。

助けてくれてありがとう。

于 2010-06-29T19:46:15.657 に答える
1

NET.TCP と HTTP プロトコルに異なるポートを使用できますか?

アップデート

私の PC ではすべて正常に動作し、再起動と iisreset の両方を試しました。バイナリ (Visual Web Developer 2010 Express を使用) と IIS 設定のスクリーンショットを含むプロジェクトを同じ場所にアップロードしました。アプリ プールは .NET 4.0 統合に設定されています。

iis7 http://www.freeimagehosting.net/uploads/1a727d66ce.png

于 2010-06-28T18:01:25.680 に答える
0

あなたは実際に完全に行う必要がありますIISRESETか?Webホストアプリを完全に再起動する必要がある場合の「最新の」推奨方法は、iisapp /a <App_Pool_ID> /r(Windows 2003)またはappcmd recycle apppool /apppool.name:<App_Pool_Name>(Windows 2008)のようにアプリプールをリサイクルすることだと思います。

于 2010-06-25T22:59:09.653 に答える
0

どのバージョンの .NET をインストールしていますか (またはインストールしたことがありますか?)

.NET 4 RC から RTM に移行するときに、TCP サービスが RC インストール (存在しなくなった) の dll を使用していたため、サービスが停止するという非常によく似た問題が発生しました。

于 2010-06-29T02:31:42.107 に答える