2011-07-27 21 views
1

我試圖在Windows Server 2008系統的運行與部署AJAX 1.0的.NET 2.0 ASP.NET應用程序IIS 7ASP.NET AJAX 1.0的Windows Server 2K8

完美地運行在我的開發同一個應用程序機器,但是發佈和部署後,即使沒有顯示錯誤消息,也不會運行AJAX。異步調用將刷新整個頁面(描述的相同症狀here,但我的xhtmlConformance標記設置爲過渡)。沒有任何錯誤和消息證明AJAX庫已找到併成功添加到項目中。

我已經閱讀了關於這個主題的一些帖子,並且假設在web.config上有一些應該使其工作的調整,但在跟隨其中一些之後,我沒有成功。

我已將this sample web.config file上的每個附加標記添加到我的正在運行的web.config中。

此應用程序最初不是作爲「啓用AJAX的ASP.NET應用程序」創建的,而是作爲常規ASP.NET應用程序創建的,儘管它在我的開發環境中可以很好地工作。

問題:我應該如何在帶有IIS 7的Windows Server 2k8上運行帶有AJAX 1.0的.NET Framework 2.0 ASP.NET應用程序?


它的建議之前,我確實想將其更新到.NET Framework的最新版本,這是正在處理,但我不是一個作出關於類似這樣的主題調用..


更新:

嘗試訪問/ScriptResource.axd(用正確的查詢字符串)給了我以下錯誤:

Session state is not available in this context.

+0

您已驗證IIS是否正在運行2.0框架? – TheGeekYouNeed

+0

該網站位於C:\ inetpub?我已經看到,如果沒有啓用適當的權限,javascript將不會被加載。當腳本嘗試通過在瀏覽器中查看請求來加載時,您應該檢查並查看請求是否成功。 –

+0

是的,它運行.net 2.0:http://i.stack.imgur.com/YTzEb.jpg – anybody

回答

1

事實證明,我在更新的問題添加的問題是什麼導致了整個問題。

Ajax試圖訪問/ScriptResource.axd,並且它在global.asax上運行了一個方法,該方法在實際上沒有會話時訪問會話變量。

所有我必須做的是檢查會話是否使用它在Global.asax中之前也可以如下:

if (HttpContext.Current.Session!=null) 
{ 
    // my code 
} 

溶液在this blog發現。

0

您已經在服務器上安裝了ASP.NET AJAX 1.0,並且已將System.Web.Extensions添加到您的web.config中?我不確定它在您的應用程序中的bin部署效果如何。在遷移到ASP.NET 3.5之前,我們使用Windows Installer軟件包來安裝ASP.NET AJAX 1.0。

你至少需要:

<compilation debug="false" defaultLanguage="c#"> 
    <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 

但微軟展示了一個完整的文件在這裏:ASP.NET AJAX 1.0 Web.config File Contents

+0

我已經在您提供給我的web.config文件的鏈接(包括答案​​中的鏈接)上的示例web.config上添加了每個附加標記。我不認爲這是彙編導入的問題,因爲沒有顯示錯誤。有些東西讓AJAX無法正常運行,即使它已加載.. – anybody