2012-01-12 27 views
1

私のコンピュータに.NET 4.0と.NET 2.0がインストールされていますAJAX.NETアプリケーションをAsynchronous Triggered Timer Tick機能で実行しようとしましたが、ページが再ロードされています(Asynchronouspostbackが機能しません)。私はClassic .NET 4.0に私のアプリケーションプールを変更しようと、私はエラーAJAXがASP.NETで動作しません

HTTP Error 404.2 - Not Found 
The page you are requesting cannot be served because of the ISAPI and CGI Restriction list settings on the Web server. 

を取得していますそして、私はClassic .NET 2.0ページに自分のアプリケーションプールを変更したときに表示されているが、タイマー間隔に応じpostback'dされています。

より多くの私は

<configuration> 
    <system.web> 
    <pages enableEventValidation="false" enableViewState="false" enableViewStateMac="false"> 
     <controls> 
     <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     </controls> 
    </pages> 
     <httpRuntime maxRequestLength="32768" executionTimeout="3600"/> 
    <httpHandlers> 
     <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> 
    </httpHandlers> 
    <httpModules> 
     <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
    </httpModules> 
    <compilation defaultLanguage="c#" debug="false"> 
     <assemblies> 
     <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     </assemblies> 
    </compilation> 
    </system.web> 
</configuration> 

私のWeb.Configファイルに追加する必要がありますし、私のAJAX.NETコードが

 <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" /> 
     <asp:Timer ID="Timer1" runat="server" Interval="200" ontick="Timer1_Tick" /> 
     <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> 
     </Triggers> 
     </asp:UpdatePanel> 

答えて

1

であるあなたはIISを開くことによって、ISAPIおよびCGIの制限の問題を解決することができます何がありますManagerを開き、サーバーを選択し、ISAPIおよびCGI Restrictionsアイコン(win 7またはwin server 2008を前提とします)をダブルクリックします。

ASP.NET v2.0.50727の各項目を右クリックして(64ビットOSと仮定し、32ビットで1つのみ)、Edit...を選択し、Allow extension path to executeチェックボックスをオンにします。

これは、ASP.Net 2.0アプリケーションを実行できるようにする必要があります。

<asp:UpdatePanel runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false" 
    ID="upTimer"> 
    <ContentTemplate> 
     <asp:Timer ID="Timer1" runat="server" Interval="2000" ontick="Timer1_Tick" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 

あなたは絶対にそれを必要としない限り、あなたはまた、200ミリ秒からタイマー間隔を増やすことを検討する必要があります限りページポスティングバックとして、最善の提案は別の更新パネルでそれをラップすることです

それはしばしば(私は2秒になるように修正した)。

その他の設定もあります。このアプリケーションを.Net 1.1アプリケーションから移行した場合、<xhtmlConformance mode="Legacy" />タグがweb.configに残っている可能性があります。

この場合、Microsoftの名誉であるas reported by Scott Guthrieというこの問題が発生します。

+0

ご回答ありがとうございますが、ご迷惑をおかけして申し訳ありません。私はAJAX.NETのタイマーティックの問題で大きな問題があります。これを行っても2秒ごとにスチルページがリロードされます。 –

+0

それが(もっと少し見えますが)わかりませんが、あなたのタイマー間隔を変更することを検討したいかもしれません。今は200ミリ秒に設定されているため、ページの混乱を招く可能性があります。 –

+0

私はポストバック問題の可能な解決策で答えを更新しました。 –

関連する問題