2011-04-08 64 views
2

在我的asp.net web應用程序的「Services」目錄中有一個WCF服務。在WCF和ASP.Net預編譯

/Services/MyService.svc 
/Services/MyService.svc.cs 

將我的源代碼複製到虛擬目錄時一切正常。我們真的希望能夠以各種原因預編譯代碼,但是當我們停止服務時。我假設現在「.cs」文件已經預編譯,並且「/ Services」目錄中不再有「MyService.svc.cs」。


的錯誤

Error: Cannot obtain Metadata from http://myurl.com/services/MyService.svc


我的.svc標記爲標準:

<%@ ServiceHost Language="C#" Debug="true" Service="MyNamespace.MyService" CodeBehind="MyNamespace.MyService.svc.cs" %> 


有什麼我幹什麼錯了,或者說我可以將WCF客戶端/服務更改爲al低的ASP.net預編譯?

+1

它是一個網站或web應用程序? – BrandonZeider 2011-04-08 18:30:23

+0

@BrandonZeider - 它是一個Web應用程序。 – AGoodDisplayName 2011-04-08 19:45:19

回答

1

假設您正在討論預編譯的網站,請查看this blog post。基本上該網站必須是可更新的。

+0

感謝您的回答,但我們希望不希望網站「可更新」,這是我們要預編譯的原因之一。 – AGoodDisplayName 2011-04-08 20:00:14

+0

@AGoodDisplayName - 在那個鏈接上有一些評論,提出了一些其他的選擇。檢查出來。 :) – Tridus 2011-04-09 01:27:26

+0

@tridus - 謝謝你是對的這些建議有我們發現工作的答案。我會接受這個答案,請參閱我的答案以獲取更多詳細信息。 – AGoodDisplayName 2011-04-09 02:21:35

0

我的一位同事發現了這一點,它的工作原理。這不是最好的解決方案,但它有效。

http://social.msdn.microsoft.com/forums/en-US/wcf/thread/8c897f8e-2143-450e-a9f4-97d1f8702da7/

編輯:

更好的解決方案......我們使用部署的項目,似乎該項目規定,除非另有規定,項目名稱爲虛擬目錄路徑。我們打開了我們的部署項目文件,並更新了以下節點到相應的虛擬目錄名稱:

<SourceWebPhysicalPath>..\MyVirtualDirectory</SourceWebPhysicalPath>