2010-07-18 74 views
50

我基於.NET框架3.5 SP1和Windows Server 2008(64位)主持開發一個應用程序在瀏覽WCF服務HTTP錯誤404.3 - 未找到」,而在Windows Server 2008(64位)

在瀏覽WCF。服務(.SVC)每一個局部的事情是確定的,但同時與全域網址瀏覽,它得到了一個錯誤

本地地址是這樣的:http://localhost/MyService.svc

和域名地址是這樣的:http://MySite.ir/MyService.svc

順便說一下,頁面(.aspx)和其他文件在localhost和域地址上都能正常工作。

任何想法,將不勝感激

下面是詳細的錯誤:


HTTP錯誤404.3 - 找不到

您請求由於擴展配置問題而無法提供該頁面。如果頁面是腳本,請添加處理程序。如果文件應該被下載,添加一個MIME映射。 詳細錯誤信息

模塊:StaticFileModule

通知:ExecuteRequestHandler

處理程序:StaticFile

錯誤代碼:0x80070032

請求的URL:http://MySite.ir:80/MyService.svc

物理路徑:d:\的Inetpub \虛擬主機\ MySite.ir \的httpdocs \ MyService.svc

登錄方法:匿名

登錄用戶匿名

回答

22

好的,這裏是答案:

前往Handler映射 | 添加處理程序經理 - >然後添加以下信息

請求路徑:* .SVC

類型:System.ServiceModel.Activation.HttpHandler,System.ServiceModel,版本= 3.0.0。0,文化=中性公鑰= b77a5c561934e089

名稱:SVC集成

+1

我有一個處理程序映射,但仍然得到同樣的錯誤 – 2012-08-02 14:51:39

+2

任何人想要把它添加到他們的web.config文件,這對我的作品在.NET 4.5的項目:<添加名稱=」 svc-Integrated「path =」*。svc「verb =」*「type =」System.ServiceModel.Activation.HttpHandler,System.ServiceModel.Activation,Version = 4.0.0。0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35「/> – 2014-07-31 16:45:51

+4

對我來說,將@StefanMohr添加到Web.config中並不適用,但是我改變了'path =」* .svc「'和'verb = 「*」'它運行得很好,因此,我使用過的那條線是:''(在配置/ system.webServer/handlers處添加) – 2015-04-21 21:42:18

0

如果您使用的.Net 4.x中,在公鑰是31bf3856ad364e35。

但是,關於在IIS中正確安裝WCF服務的this post,該處理程序是爲我設置的。

7

如果任何人有Windows Server 2012中在這個問題上,比爾月球的答案here解決了這個問題對我來說:

「對於Windows Server 2012 ...從服務器管理器,單擊添加角色和功能,選擇適當的服務器,然後選擇功能。在.NET Framework 4.5功能下,您將看到WCF服務,然後在其中找到HTTP激活。「

+1

在任何現有的Web應用程序中,您還必須執行在添加Windows功能後,請執行以下操作: - 啓動inetmgr - 打開「處理程序映射」 - 檢查擴展名* .svc的svc-ISAPI映射是否存在,如果不存在,請使用「還原爲父級」母公司網站 請注意這假設自定義處理程序映射是在web.config中爲應用程序配置的,正如IIS7 +中的情況通常一樣。如果不是,執行「還原爲父項」時將失去這些內容。 – 2014-07-30 06:58:09

139

請確保您已啓動here的WCF組件。或者簡單易用的方法是,轉到控制面板 - >打開或關閉Windows功能 - >並確保您已按照下面的屏幕快照中所述勾選了所有選項。

enter image description here

+25

.Net Framework 4.5高級服務 - >檢查WCF服務和 - > HTTP激活爲我做了! – devHead 2014-12-05 19:18:04

+2

Windows Server 2012 - 只需要HTTP激活和端口共享檢查。 – dibs487 2016-03-11 14:40:35

+1

這是我的解決方案。它在Windows Server 2012 r2 – 2016-06-08 12:17:41

0

我想添加爲答案註釋,但沒有足夠的代表吧。我嘗試使用各種標誌運行ServiceModelReg和aspnet_regiis.exe,並添加了HTTP激活功能,但仍無法使用。即使在IIS中使用Handler映射UI也無法正常工作,因爲它找不到System.ServiceModel.Activation.HttpHandler。最後的工作是將處理程序Mori手動添加到我的web.config文件中。

<system.webServer> 
    <handlers> 
     <add name="svc-Integrated" path="*.svc" verb="GET,HEAD,POST,DEBUG" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Script" allowPathInfo="false" preCondition="integratedMode" responseBufferLimit="4194304" /> 

我的項目在Windows 7上運行.Net 3.5和IIS 7.5,在Win Server 2008 R2上運行IIS 7.0。

0

嘗試從取消選中WCF HTTP激活 「打開的Windows功能打開或關閉」 窗口(See here)和去

%windir%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ 

重新安裝和執行ServiceModelReg -i

0

我有Windows 10我的筆記本電腦,並使用Visual Studio 2015進行WCF開發。 WCF在Visual Studio中運行良好,但在IIS中託管時,我得到了同樣的錯誤。

我檢查了IIS處理程序。 svc擴展名缺失。所以我試着在森林中建議在IIS中添加新的處理程序。我沒有找到類型「System.ServiceModel.Activation.HttpHandler」。

所以我打開了「打開或關閉窗口功能」,並安裝了屏幕快照中突出顯示的功能。

這對我有效。

enter image description here

相關問題