1

为了打开和保存 Office 文件,我将 ITHit WebDav 服务器集成到我的解决方案中。WebDav 在一个单独的项目中实现,但在同一个解决方案中。本地它工作正常,我可以打开和保存 Word 和 Excel 文档。但是部署后,当我尝试打开文件时,出现以下错误:

Sorry, we couldn’t open the File “http://MyWebSite.de/Storage/test.xlsx”

Microsoft Excel cannot access the file “http://MyWebSite.de/Storage/test.xlsx”. 

There are several possible reasons:
 - The file name or path does not exist.
 - The file being used by another program.
 - The workbook you are trying to save has the same name as a currently open workbook.

文件位于正确的位置,应用程序对其拥有完全的权利。

本地 WebDav 项目有自己的 web.config。但是在部署之后,WebSite 项目中只有 web.config,WebDav 是 Bin 文件夹中的 .dll 文件。

网站 web.config 服务端和本地:

...
<location path="Storage">
    <system.web>    
      <httpHandlers>       
        <clear />        
        <add verb="*" path="*" type="WebDav.DavHandler, WebDav" />
      </httpHandlers>    
    </system.web>

    <system.webServer>
      <handlers>        
        <add name="My WebDAV Handler" path="*" verb="*" type="WebDav.DavHandler, WebDav" preCondition="integratedMode" />
      </handlers>      
    </system.webServer>    
  </location>
...

WebDav web.config 本地:

...
<system.web>
    <httpHandlers>    
      <clear/>     
      <add verb="*" path="*" type="WebDav.DavHandler, WebDav"/>
    </httpHandlers>

    <httpModules>    
      <remove name="FileAuthorization"/>
      <add name="ITHitPutUploadProgressAndResumeModule" type="ITHit.WebDAV.Server.ResumableUpload.PutUploadProgressAndResumeModule, ITHit.WebDAV.Server"/>     
      <add name="ITHitPostUploadProgressModule" type="ITHit.WebDAV.Server.PostUploadProgressModule, ITHit.WebDAV.Server"/>
    </httpModules>

    <httpRuntime executionTimeout="2400" maxRequestLength="2097151" requestPathInvalidCharacters="" relaxedUrlToFileSystemMapping="true" targetFramework="4.5"/>
    <customErrors mode="Off"/>
    <authentication mode="None"/>
    <authorization>
      <allow users="*"/>
    </authorization>
    <globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
    <compilation targetFramework="4.5" debug="true"/>
  </system.web>

  <system.webServer>
    <handlers>     
      <clear/>      
      <add name="aspnet_isapi 32-bit ASP.NET 2.0" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness32"/>      
      <add name="aspnet_isapi 64-bit ASP.NET 2.0" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness64"/>      
      <add name="aspnet_isapi 32-bit ASP.NET 4.0" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness32"/>      
      <add name="aspnet_isapi 64-bit ASP.NET 4.0" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness64"/>      
      <add name="My WebDAV Handler" path="*" verb="*" type="WebDav.DavHandler, WebDav" preCondition="integratedMode"/>
    </handlers>   

    <modules>      
      <remove name="FileAuthorization"/>  
      <add name="ITHitPutUploadProgressAndResumeModule" type="ITHit.WebDAV.Server.ResumableUpload.PutUploadProgressAndResumeModule, ITHit.WebDAV.Server"/>
      <add name="ITHitPostUploadProgressModule" type="ITHit.WebDAV.Server.PostUploadProgressModule, ITHit.WebDAV.Server"/>     
      <remove name="WebDAVModule"/>
    </modules>
    <validation validateIntegratedModeConfiguration="false"/>

    <security>      
      <requestFiltering allowDoubleEscaping="true">
        <fileExtensions>
          <clear/>
        </fileExtensions>
        <hiddenSegments>
          <clear/>
        </hiddenSegments>
        <requestLimits maxAllowedContentLength="2147483648"/>
      </requestFiltering>
    </security>   

    <staticContent>
      <mimeMap fileExtension=".pkg" mimeType="application/octet-stream"/>
      <mimeMap fileExtension=".deb" mimeType="application/octet-stream"/>
    </staticContent>
  </system.webServer>
...

我该如何解决这个问题?

4

0 回答 0