2014-10-30 68 views
1

我正在嘗試通過此處的演練來創建WCF項目... http://msdn.microsoft.com/en-us/library/bb386386.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-3,但在第一步驟中就陷入了困境。Visual Studio Express - 缺少項目子類型會阻止項目的打開

不好 - VSE Windows桌面沒有WCF服務庫模板。

好 - VSE的Web開發者,所以我成立了VSE Web開發的WCF項目

壞 - 不能在VSE Windows桌面打開WCF項目

好 - 找出可複製模板從VSE Web開發人員文件夾到VSE Windows桌面,我確實做得很好-VSE Windows桌面現在有WCF服務庫模板,所以我嘗試創建一個新的WCF項目。 VSE似乎遵守,建立項目文件夾...但隨後

壞 - ...引發錯誤...

The project file '... WcfService1.csproj' cannot be opened. 

There is a missing subtype. 

Subtype:'{blah blah}' us unsupported by this installation. 

我甚至嘗試將其關閉,並再次打開。

下一步是什麼?

+0

WCF服務庫只是一個類庫(DLL)更多。項目模板可能會使它更容易啓動和運行,而不是運行所有的瑣事,只需在VSE Windows Desktop中創建一個類庫項目即可。 – Tim 2014-10-30 23:59:33

+0

@Tim - 我不能。 VSE Windows桌面沒有他的WCF服務庫模板,所以我甚至無法創建一個WCF項目。你的意思是別的嗎? – Extermiknit 2014-10-31 01:13:43

+0

你可能想看到這個相關的(重複?)問題,你面對的一些障礙。 http://stackoverflow.com/questions/14698258/how-to-turn-a-basic-class-library-into-a-wcf-service-library/14698420#14698420 – DeanOC 2014-10-31 02:52:12

回答

1

正如我在我的評論中提到的,WCF服務庫只不過是一個類庫 - WCF服務庫項目模板只是具有其他內容以使設置項目更快捷。你可以通過創建一個類庫來完成同樣的事情。

轉到菜單上的文件 - >新建項目。在打開的窗口中,展開Visual C#,然後選擇Windows並從中心列表中選擇Class Library,爲其命名,然後單擊OK。

enter image description here

你必須添加的接口和服務的配置設置,但你應該能夠從你下面的文章複製和粘貼。一旦完成,瞧,你有一個WCF服務庫。

編輯瞭解更多詳情

的WCF服務庫模板給你的唯一的事情是一個WCF服務庫中的樣板 - 包含了服務實現的cs文件,對於該cs文件服務契約(接口)該服務實現的和具有必要的<system.serviceModel>條目的app.config文件。

用您在原始文章中鏈接的文章進行粘貼,下面是如何在沒有模板的情況下執行此操作。

第1步和第2步。按照上面我所做的 - 創建類庫。 VS將創建該項目,您將看到一個名爲class1.cs的文件。這將是您的服務班。如果您願意,可將其重命名爲WCFServiceLibrary1.cs。

接下來添加一個接口並將其命名爲IWCFServiceLibrary1。這將是您的服務合同。您將需要更新WCFServiceLibrary1.cs文件和public class WCFServiceLibrary1後添加: IWCFServiceLibrary1,所以它看起來是這樣的:

public class WCFServiceLibrary1 : IWCFServiceLibrary1 

在該界面中,添加[ServiceContract]屬性界面上面,像這樣:

[ServiceContract] 
public interface IWCFServiceLibrary1 

您還需要將對System.ServiceModelusing System.ServiceModel的引用添加到您的課程和界面。

第3步和第4步。將文章中的代碼複製到正確的文件中。

步驟5:您可以通過點擊F5並運行WCFTestClient來測試該服務。

然後,您應該能夠按照文章的其餘部分。

這樣做需要一點時間,但您也將更好地瞭解WCF服務庫的內容。

+0

試過了。在VSE for Windows Desktop中設置一個新的類庫,並開始複製VSE for Web中的項目(笨拙,但試圖找到問題)。但是,無法創建「Web Service .asmx」項。實際上,VSE For Windows Desktop在「創建新項目」的「Web」節點下沒有任何項目。我如何獲得那裏的物品? PS我看了鏈接的文章,討論編輯XML文件,但它在哪裏? – Extermiknit 2014-10-31 04:13:15

+0

好的。首先,停止嘗試將VSE for Web中的內容複製過來。桌面擁有創建此WCF服務庫所需的所有內容,它只是沒有打包成一個整潔的模板。 ASMX!= WCF - ASMX是傳統技術,不應用於新開發。給我幾分鐘,我會更新我的答案。 – Tim 2014-10-31 04:45:33

+0

感謝您的耐心配合。我經歷了你的步驟,但被卡在步驟5中。F5(在類庫上)給出了以下錯誤消息:「具有輸出類庫類型的項目不能直接啓動。爲了調試此項目,添加一個可執行文件項目到引用庫項目的解決方案,將可執行項目設置爲啓動項目。「我想我需要MSDN演練中的下一步來驅動類庫。 – Extermiknit 2014-10-31 23:35:03

相關問題