2011-08-25 65 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