2015-05-29 150 views
11

我按照instructions來設置和託管我自己的NuGet訂閱源。我正在運行Windows 2012(IIS 8.5)框中的Web應用程序。NuGet.Server返回404錯誤

我建立和運行解決方案,並得到Default.aspx頁面...

它說:「你正在運行NuGet.Server v2.8.60318.667」 和「點擊此處查看你的包」。

當我點擊「這裏」鏈接時,我得到一個「404 - 文件或目錄未找到。」錯誤。

  • 我可以成功運行nuget.exe push命令將包放在 的Nuget服務器上;但是,當我嘗試運行 nugget.exe list命令時,我收到404錯誤。
  • 我已重新啓動IIS和服務器
  • 我已經從零開始重建了NuGet.Server Web應用程序。
  • 我已經嘗試在Windows 7盒子上承載NuGet.Server,沒有 成功。
  • 在web.config具有以下條目

    <modules runAllManagedModulesForAllRequests="true"> 
    
  • 在web.config還具有註冊.nupkg擴展作爲mime類型= 「應​​用程序/壓縮」

的條目它似乎URL路由不起作用,但我似乎無法確定我做錯了什麼。有些東西阻止了odata feed的正常工作。

我知道NuGet服務器有很棒的第三方實現,但我真的很想讓免費的一個工作,看起來應該很容易。任何想法或疑難解答提示將不勝感激。

回答

1

我有一個答案沒有在我發現的任何帖子中提到。如果您將項目命名爲Nuget.Server,即使發佈將在IIS中工作,ninject也將無法設置程序包列表路由,因爲它會嘗試加載錯誤的DLL並出錯。

下面是其他一些可能的答案:

Possible Answers 1

Possible Answers 2

0

我今天有這個問題。其實我需要做的,這是在Global.asax中:

void Application_Start(object sender, EventArgs e) 
{ 
    NuGetRoutes.Start(); 
} 
4

如果你命名你的項目Nuget.Server,因爲你生成的DLL會Nuget.Server.dll它不會工作,因爲Nuget.Server.dll是服務器的實際DLL。 將您的程序集名稱重命名爲其他名稱。

1

%APPDATA%\ NuGet或$(SolutionDir).nuget中的NuGet.config文件可能指的是意外的「活動源」URL。例如,由TFS構建代理安裝帶來的nuget.exe可能僅在URL指向v3協議時才知道NuGet v2協議。或者NuGet.config中可能缺少自定義的NuGet服務器URL。

1

我有類似的問題,我找到了解決方案!我按照說明創建了一個私人nuget服務器,以創建一個空的ASP.NET項目(我在VS2015上),然後安裝nuget.server(當前爲v2.11.3.0)。我能夠運行並查看網頁,但我無法使用「nuget.exe推送」來上傳軟件包。我得到了可怕的404找不到錯誤。

我最終克隆了github上的nuget.server源代碼,並直接運行,哪些工作正常!?我發現我的web.config不正確。對我來說,關鍵行是

<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,PUT,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/> 

<system.webServer>/<handlers> 

部分

我建議任何有問題的人都應該去github並比較web.config文件。

順便說一句:nuget.server安裝應該取代你的web.config。這可能不適合我。

0

我注意到,當你嘗試上傳相當大的nuget包時,你會得到404錯誤。我加大了maxAllowedContentLength,它幫助。

<system.webServer> 
    <security> 
    <requestFiltering> 
     <requestLimits maxAllowedContentLength="31457280"/> 
    </requestFiltering> 
    </security> 
</system.webServer> 
3

如果您創建一個新的空VB項目你也將獲得404(在包和瀏覽器使用的NuGet管理器)。

您似乎必須創建該項目作爲C#,它的工作原理如同廣告!

然而出現在源代碼相同:(

0

我有這個問題,用乾淨Visual Studio 2017 Web項目。

Visual Studio 2015重塑和定位.NET 4.6.1整理出來