私人NuGet服务器:请求实体太大如何解决?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (337)

我们有一个内部的NuGet服务器(使用NuGet.Server包的ASP.net应用程序),我们希望与Octopus一起使用它来部署包。所以你碰到的第一件事是这些软件包太大了。

当你推送一个大于7 Meg的包时,你会得到:无法处理请求。'请求的实体太大'。远程服务器返回错误:(413)请求实体太大..

基于Octopus的文档,我更新了web.config文件以进行更改。

<configuration>
    <configSections>
        <sectionGroup name="elmah">
            <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah"/>
            <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah"/>
            <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah"/>
            <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah"/>
        </sectionGroup>
    </configSections>
    <system.web>
        <compilation debug="true" targetFramework="4.0"/>
        <httpModules>
            <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
            <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah"/>
            <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/>
        </httpModules>
        <httpRuntime maxRequestLength="419430400" executionTimeout="3600"/>
    </system.web>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
        <modules runAllManagedModulesForAllRequests="true">
            <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler"/>
            <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler"/>
            <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler"/>
        </modules>
        <staticContent>
            <mimeMap fileExtension=".nupkg" mimeType="application/zip"/>
        </staticContent>
        <security>
            <requestFiltering>
                <requestLimits maxAllowedContentLength="419430400"/>
            </requestFiltering>
        </security>
    </system.webServer>
    <elmah>
        <security allowRemoteAccess="false"/>
        <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data"/>
    </elmah>
    <location path="elmah.axd" inheritInChildApplications="false">
        <system.web>
            <httpHandlers>
                <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/>
            </httpHandlers>
        </system.web>
        <system.webServer>
            <handlers>
                <add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode"/>
            </handlers>
        </system.webServer>
    </location>
    <appSettings>
        <add key="apiKey" value="KeyHere"/>
        <add key="packagesPath" value=""/>
    </appSettings>
    <system.serviceModel>
        <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
    </system.serviceModel>
</configuration>

这是行不通的。其他职位谈论运行像(IIS7)的东西:appcmd.exe设置config -section:system.webServer / serverRuntime / uploadReadAheadSize:“419430400”/ commit:apphost

或(IIS6):cscript adsutil.vbs set w3svc / 1 / uploadreadaheadsize 419430400

我试过都无济于事。这两个命令都没有返回错误,所以我假设值'419430400'对于所有调用都是正确的(字节与其他大小的单位)。

我最终只是将软件包复制到Web服务器上的一个共享中,但我真的很喜欢push命令。

提问于
用户回答回答于

我知道这是一个古老的问题,但今天我面临着同样的错误。值得注意的是我正在使用TeamCity软件包构建和发布。无论如何,当我尝试Publish我的巨大包裹(大约200 MB)时,我被阻止了。解决方案很简单:

不要发布到http://mynugetserver/api/v2/,请使用: http://mynugetserver/

用户回答回答于

不是完全回答OP的问题,而是与该主题相关,我(413) Request Entity Too Large在使用NuGet push推送到本地SymbolSource服务器时遇到了错误- 事实上,当我更正命令以指向基本/NuGet/URL时,我提交的URL有点不正确,它运行得很好。

不知道为什么一个不正确的URL导致了413错误,但你去了。希望这可以帮助某人。

只需引用基本http://www.myserver.com/网址,而不是包含/ NuGet。

所属标签

可能回答问题的人

  • 找虫虫

    0 粉丝0 提问6 回答
  • 优惠活动秘书

    0 粉丝2 提问6 回答
  • 不吃貓的鱼oo

    5 粉丝466 提问5 回答
  • 天使的炫翼

    17 粉丝531 提问5 回答

扫码关注云+社区

领取腾讯云代金券