IISで.svcファイルにアクセスするときのHTTP404


87

最近、Visual Studio 2008からテストしたときに正常に機能するWCFサービスを作成しました。しかし、プロジェクトをIISに展開し、IISから.svcファイルにアクセスしようとすると、次のエラーが発生します。

"Server Error in '/' Application.The resource cannot be found.  "

私は過去4日間この問題を抱えています。

IISマネージャーのハンドラーマッピングで、.svcの2つのエントリを確認できます。

svc-Integrated and svc-ISAPI-2.0

回答:


75

SVC拡張機能のマッピングをASP.NETに追加する必要があります。これを行う最も簡単な方法はServiceModelReg.exe -i、C:\ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows CommunicationFoundationから実行することです。ASP.NETをまだ有効にしていない場合は、有効にする必要がある場合もあります。


Windows Server 2012または2016を使用している場合は、代わりに次の手順に従ってください。


その後、IISを再起動してみましたか?
tvanfosson 2010

.svcのmimeマッピングはありますか?
tvanfosson 2010

mimeマッピングではありません-アプリケーション拡張マッピング。msdn.microsoft.com/en-us/library/ms752252(v=vs.90).aspxを参照してください
Michael Freidgeim

22
重要:.NET4.5がインストールされているServer2012ではこれを行わないでください。それからServiceModelReg.exe-uaを実行するまで、それは私を台無しにしました。Server 2012のソリューションについてはこちらをご覧ください:stackoverflow.com/questions/11116134/...
スコット・アンダーソン

110

私のために働いたこと、Windows 2012 Server R2の場合:

WCF HTTP 404

「アーロンD」に感謝します


4
はるかに簡単なオプション。
BIDeveloper 2016年

それはWin10、Win8.1デスクトップ、Win2012サーバーで私のために働いた:)ありがとう!
スキッパー2018

これは、Win10、Win8.1デスクトップ、およびWin2012サーバーで機能しました:)ありがとうございます。
スキッパー2018

2
何らかの理由で、3.5と4.5の機能を、コマンドラインからインストールする必要が dism /online /enable-feature /featurename:WCF-http-Activation45 /all ありました。また、 dism /online /enable-feature /featurename:WCF-http-Activation /all
Rocklan 2018

1
Sever 2019でも動作します
ZarShardan19年

56

この手順を示すブログ投稿これらの手順を見つけました。これは私にとってはうまくいきました(Windows 8、64ビット):

Windowsの機能で、.NetFrameworkの両方のWCFオプションがオンになっていることを確認してください。したがって、[コントロールパネル] –> [プログラムと機能] –> [Windowsの機能のオン/オフを切り替える] –> [機能] –> [機能の追加] –> [.NET FrameworkXXの機能]に移動します。.Net Frameworkにインストール済みと表示されていることを確認し、その下のWCFアクティベーションノードが選択されていること(チェックボックスがオンになっていること)と、WCFアクティベーションの両方のオプションもオンになっていることを確認します。
これらは:
* HTTPアクティベーション
*非HTTPアクティベーション
両方のオプションを選択する必要があります(チェックボックスをオンにします)。

2
これに何度も賛成することができれば、これは私をNUTSに駆り立てました、乾杯!
クリスW.

4

あなたはすでにあなたの問題を解決しているようですが、後世のために:

同様の問題が発生し、SVCハンドラーは既に正しくインストールされています。私たちの問題は、ExtensionlessUrlハンドラーがSVCハンドラーに到達する前に要求を処理することでした。

これを確認するには、WebサーバーレベルのIISマネージャーのハンドラーマッピングで、ハンドラーのリストを順番に表示します(これは右側のオプションです)。さまざまなExtensionlessUrlハンドラーがSVCハンドラーの上に表示されている場合は、それらが一番​​下になるまで繰り返し下に移動します。


1

ディレクトリがアプリケーションに変換されていることを確認します。これがIISです。


1

今日も同じ問題がありました。

私にとっての解決策は、IISにアクセスし、新しいWebサイト名を右クリックして、[プロパティ]、[ASP.Net]の順に選択し、ASP.Netのバージョンを「1.1.4322」(デフォルトとして設定)から変更することでした。 2.0.50727に。

それが済んだら、.svcファイルを右クリックし、[参照]をクリックして、使いやすいサービスのWebページを表示します。


1

これは、Windows10でIIS6管理の互換性を有効にした後でも問題になる可能性があります。WCFサービスでフレームワークのHTTPアクティベーションを設定すると、問題が修正されます。


0

私の場合、エラーの原因は、ファイルapplicationhost.config(\ System32 \ inetsrv \ config)のマッピング設定が正しくないことが原因でした。何らかの理由で、Visual Studio 2013は、IISで仮想ディレクトリを作成しているときに破損しました。修正は、ファイルのサイトセクションを手動で編集することでした。



0

私の場合、Win10です。ファイルapplicationHost.configはVS2012によって破損しています。また、このファイルの履歴のコピーをC:\ inetpub \ historyで取得できます。次にIISを再起動すると、正しく機能します。


0

リクエストフィルタリング設定で許可されている拡張子に拡張子.svcを追加する必要がありました(以前は404.7エラーが発生していました)。

ここに画像の説明を入力してください


0

リクエストフィルタリングで許可されているように.svcサフィックスを追加することで、私はうまくいきました。


0

上記の解決策のどれも私のためにこのエラーを解決しませんでした。web.configで次のように設定する必要がありました。

system.servicemodel > bindings > webHttpBinding > binding:
<security mode="Transport">
  <transport clientCredentialType="None" />
</security>

この機会を利用して、.NET Frameworkでこのような巨大な混乱を引き起こし、開発者の生活を長い間悲惨なものにしてくれたCURSEMicrosoftにもう一度行きたいと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.