2015-11-24 62 views
7

我們有一個使用Visual Studio 2013創建的.NET 4 Website Project,它引用了System.Net.Http .dll。ASP.NET Website項目構建,但發佈時出錯

這是在web.config中加載該.dll行:

<add assembly="System.Net.Http, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 

該項目建立正常,但當我們試圖「發佈網站」,它提供了以下錯誤:

The type or namespace name ‘Http’ does not exist in the namespace ‘System.Net’ (are you missing an assembly reference?)

它看起來像程序集可能是從GAC加載的,我們試圖將程序集放在應用程序的BIN文件夾中,但這沒什麼區別 - 它仍然在項目屬性頁面上顯示爲GAC引用。

我們也嘗試添加:

<runtime> 
    <assemblyBinding> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> 
     <codeBase version="1.0.0.0" href="/bin/System.Net.Http.dll"/> 
     </dependentAssembly> 
    </assemblyBinding> 

由於這裏建議:Could not load file or assembly System.Web.Http.WebHost after published to Azure web site

但這似乎並沒有任何工作。

我們已將目標框架更改爲3.5和4.5,但無效。

我們嘗試了從幾種不同的機器發佈。

編輯:我們已經嘗試了RobAda中的nuget包建議,它沒有產生預期的效果,我們仍然收到錯誤。

+0

也許ü需要看看[這](http://stackoverflow.com/questions/26272743/system-net-http-missing) – BNN

+0

@ coder,謝謝我們已經嘗試過,不幸的是,當我們嘗試該項目不會建立由於遺留代碼 - 似乎我們目前停留在4.0。 – Mack

回答

1

聽起來就像你試圖在它不適合/不適合的地方放鞋。

一種可能的架構方法是將功能分解爲解決方案。

如果時間限制是一個問題,這是一種可能性,它可能是解決您的問題。

長期雖然:這將是值得確保你跟上與倍,你會得到更多的問題,這樣隨着時間的移動,當然這必須是務實的做法...

+0

這是一種概念驗證應用程序發佈的可能性,我們可以託管在一個單獨的域上,將嘗試此操作並返回給您。 – Mack

4

我看到的一個朋友應用了同樣的問題,我們需要周圍挖了不少,但最終發現,你需要安裝這個NuGet包:

https://www.nuget.org/packages/Microsoft.Net.Http

然後,您將需要添加引用到System.Net.Http它不會產生規定的錯誤。