2011-08-25 68 views
0

我在我的组织中拥有一个遗留的(传统的asp)CRM。用户可以通过Web前端上传文件,将它们存储在网络共享中,并将文件名,上传文件等保存到数据库中。除.config文件外,一切都很好。服务.config文件

出于某种原因,某些人可以下载这些就好了,但其他人收到此错误: 类型您请求不提供服务,因为它已被明令禁止的网页。扩展名'.config'可能不正确。

它似乎是对一些用户计算机上的链接,该文件是“文件:// networkshare /文件名”(工作),并在其他机器上它为“http:// networkshare /文件名”。 (不工作)

我有一个的.config设置iss6以纯文本/ MIME类型。所有用户都在运行IE8。

页面上的代码创建一个基于记录的HREF链接从数据库返回。

为什么那么有没有那里的链接在不同的PC的同样的浏览器不同的呈现方式有什么区别?如何让.config文件允许人们查看网站web.config?

该建立链路的代码是:

function getlink(file_nm,path) 
{ 
    thisPage.navigate.CheckDocumentAttachedToRequest(file_nm, path) 
    var sDocLink = path.replace(/\//g,"\\") + "\\" + file_nm; 
    return "<A class=\"parislink2\" TARGET=\"_BLANK\" HREF=\"\\\\" + thisPage.get_sServerName() + "\\" + sDocLink + "\">" + file_nm + "</A>"; 
} 

回答

0

怪异。

我知道,如果一个客户端请求是指未在MIME类型定义的文件扩展名IIS 6将返回错误404.3。

但是您确实已经定义了它。您可以尝试在您的MIME类型中使用通配符()进行测试。 (文件扩展名为,MIME类型为text/plain)。通配符可能存在安全风险,但是如果您正在提供配置...可能此应用程序和服务器在您的网络内部,因此使用通配符。

我还要检查你的ISAPI扩展(不是过滤器,而是扩展),并确保的.config 仍然在那里。它应该是默认的。

定义在IIS中的全局级别MIME类型应通过筛选下来,将覆盖在文件夹级别的任何MIME类型。

一个IIS复位需要你改变MIME类型每次。

也许这是一个浏览器问题? (在客户端的问题,不工作的链接,像“浏览器控制”问题。)

这几乎就像一些浏览器正在解释你的功能,当链接建立。 。和其他人在从函数调用呈现HTML时代替“http”而不是“file”作为协议。也许你可以硬编码的功能给我们“文件:”作为被放置在你的链接代码开始时的字符串。 (试图在此改变由HTML得到的地方在那里发回服务器或IE8呈现的任何“HTTP”的字符串)。

通配符过滤出在上面的帖子安全的目的。(wildcard =“星号”)

+0

我用硬编码file:前缀去了。我不喜欢这样做,但它完成了工作 – Curtis