2012-02-01 200 views
1

我在與我的ASP.NET Web應用程序一起部署我的WCF服務時遇到了一些困難。我有一切工作在我的本地機器(定義我的地址,綁定,合同),我可以從我的ASP.NET(MVC)Web應用程序調用服務。 (基本URL現在的問題是http://localhost:####/Design_Time_Address/Fully/Qualified/Service/使用ASP.NET Web應用程序部署WCF服務

不幸的是,有一次我嘗試部署,事情往往炸燬。

這是我目前正在做的。請讓我知道如果一個或多個步驟不正確。

  1. 我有我的ASP.NET MVC項目中的WCF服務的服務引用。
  2. 我第一次嘗試使用web部署來部署MVC項目。 MVC部分運行良好,但無法找到我的服務。 (雖然,有趣的是,我可以看到我的主機上的DLL文件到我的服務。)
  3. 所以,這個搞亂了一會兒後,我又試圖單獨上傳我的服務通過SFTP。我能夠在某個時間點擊.svc文件,但最近我一直在接收錯誤。 (我假設這是因爲我一直在試圖弄明白,並莊嚴地搞砸了。)
  4. 我有點困惑在這裏,因爲我不明白的地址應該是什麼,或者我應該如何在WCF App.config文件中配置它,以便我的MVC應用程序可以訪問它。

就像我說的,我很好,直到我不得不部署,不幸的是,我無法找到任何可以幫助我的教程。

什麼我不理解是我需要做的,能夠通過我的MVC應用程序通過主機服務器訪問我的服務有什麼設置?我需要在我的MVC項目中提供服務參考嗎?我是否必須直接在WCF服務中配置某些內容?是否有可能只是做網頁部署和Stuff Just Works(TM)?

感謝您的幫助。

+0

所有你應該需要的是在你的兩個web.configs匹配的終點。最好的猜測是WCF應用程序無法在部署的服務器上使用與開發中相同的端點,這可能是由於端口已被IIS使用,或者由於SSL傳輸等不同行爲。 – sipwiz 2012-02-01 00:40:15

+0

@sipwiz - 當你說兩個web.configs ...我的WCF服務中只有一個app.config。我是否需要將其更改爲web.config? – JasCav 2012-02-01 00:53:04

+0

您用於WCF服務的是哪種應用程序?如果它是在Windows服務中自行託管的,那麼app.config是正確的。如果它由IIS託管,那麼它應該是一個web.config。 – sipwiz 2012-02-01 00:58:16

回答

0

所以,事實證明這個問題很容易解決......不幸的是,在這種情況下,我是一個完整的noob。我創建了一個WCF服務庫,而不是創建一個WCF服務應用程序。切換到WCF服務應用程序,設置我的終點,將DEPLOYED服務添加到我的MVC應用程序,並且它像一個魅力一樣工作。

感覺像今天的新手......

1

你可以走小步。

  1. 創建一個新的Visual Studio解決方案。
  2. 向它添加一個新的ASP.NET空Web應用程序項目。
  3. 向此應用程序添加一個新的WCF服務項目。
  4. 將您的應用程序發佈到服務器。
  5. 通過導航到服務(http://host/myservice/service1.svc),確保服務已成功發佈到IIS。
  6. 向您的解決方案中添加一個新的ASP.NET MVC 3應用程序。這將產生一個強類型的客戶端代理類,允許您使用該服務,並修改你的web.config,以添加包含客戶終端,其地址指向您發佈了WCF服務<system.serviceModel>部分
  7. 在執行一些代碼將調用服務方法的ASP.NET MVC 3應用程序
  8. 在本地運行ASP.NET MVC 3應用程序,它應該能夠調用已發佈的服務。
  9. 發佈您的ASP。NET MVC 3應用程序

既然您已經準備好開始在服務中實現功能的所有功能,您可以通過更改ASP.NET MVC 3應用程序的web.config文件中的客戶端終端或者離開它併發布服務來在本地測試該服務。

個人而言,我不使用Visual Studio中的Add Service Reference對話框。當我接觸到web.config時,我討厭它。我只是恨,當沒有我的許可或驗證時,觸及我的代碼。我使用命令行svcutil.exe爲我的WCF服務生成強類型客戶端。因此,我輸入svcutil.exe http://localhost:1234/service1.svc命令,該命令生成2個文件:一個包含客戶端代理的.cs文件和一個包含服務端點配置的app.config文件(我通常會手動刪除它,因爲我傾向於手動修改我的應用程序的web.config) 。然後我將.cs文件複製到我的客戶端應用程序。

+0

感謝您的建議。我嘗試了一步一步的嘗試,但是部署仍然很糟糕。我打算將你的答案標記爲正確的,只是因爲它給了其他人一個起點。然而,我從來沒有能夠讓簡單的案例工作(除了當我在本地運行一切時)。一旦我部署,事情就會變得瘋狂。再次感謝。 – JasCav 2012-02-11 16:55:14