AJAX HTMLEditor 不适用于生产服务器,但适用于开发环境

发布于 2024-12-18 15:13:01 字数 11061 浏览 5 评论 0原文

我对此相当陌生,在部署我的网站(带有一些 AJAX 组件的 ASP.net)时遇到问题,并且一直在疯狂地试图找到解释。

一般来说,一切正常,但有一个例外,即从 MS Access 数据库读取/更新/删除时,使用 AJAX HTMLEditor 的页面无法正常工作。我的页面上有其他 AJAX 控件(例如日历扩展器),它们似乎工作正常。我还有带有文本框的文件,它们都可以正确更新数据库。

我有 2 个测试环境,都运行 IIS 7,并且都按预期工作。 Visual Studio2010开发测试也正常。

我怀疑问题出在IIS配置或web.config设置上。

任何帮助将不胜感激,我几天来一直在寻找答案,并且正在快速接近疯狂......

提前致谢。

这是当前使用 IIS 7 在我的测试服务器上运行的 web.config。

<configuration>
    <connectionStrings>
        <remove name="LocalSqlServer" />
        <add name="CI1ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0 ;Data          Source=|DataDirectory|CI1.mdb"
    providerName="System.Data.OleDb" />
        <add name="AppCtlConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=|DataDirectory|CI1AppCtl.mdb"
    providerName="System.Data.OleDb" />
        <add name="SurveyConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=|DataDirectory|CI1Surveys.mdb"
    providerName="System.Data.OleDb" />
        <add name="LogFileConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=|DataDirectory|CI1SystemLogs.mdb"
    providerName="System.Data.OleDb" />
    </connectionStrings>

    <system.web>
        <httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" />
        <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" validateRequest="false"
    enableEventValidation="false" viewStateEncryptionMode="Never" enableViewStateMac="false" >
            <controls>
                <add tagPrefix="asp" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" />
            </controls>
        </pages>
        <httpModules>
            <add name="EOWebRuntime" type="EO.Web.Runtime,EO.Web"/>
        </httpModules>
        <httpHandlers>
        </httpHandlers>

        <sessionState mode="InProc" timeout="120" />

        <identity impersonate="false" />
        <trust level="Full" />
        <customErrors defaultRedirect="CTL_Problem.aspx" />
        <compilation batch="true" batchTimeout="900" debug="true" defaultLanguage="c#" explicit="true" numRecompilesBeforeAppRestart="15" strict="false" targetFramework="4.0">
        <assemblies>
            <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
            <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        </assemblies>
        </compilation>
        <globalization culture="en-AU" enableClientBasedCulture="true" uiCulture="en-AU" />
    </system.web>

    <system.net>
        <mailSettings>
            <smtp>
                <network defaultCredentials="true" host="localhost" />
            </smtp>
        </mailSettings>
    </system.net>

    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <modules runAllManagedModulesForAllRequests="true" />
        <defaultDocument>
        <files>
            <clear />
            <add value="default.aspx" />
            <add value="index.aspx" />
        </files>
        </defaultDocument>
    </system.webServer>

    <location path="Styles/Site.css">
        <system.web>
            <authorization>
                <allow users="*" />
            </authorization>
        </system.web>
    </location>
    <location path="data">
        <system.web>
            <authorization>
                <deny users="?" />
            </authorization>
        </system.web>
    </location>
    <location path="functions">
        <system.web>
            <authorization>
              <deny users="?" />
            </authorization>
        </system.web>
    </location> 
</configuration> 

好的,我已经做了更多探索并更新了我的 web.config(见下文)。现在,该行为使页面能够读取数据(但不是每次)并随机更新数据库(插入和更新)。非常奇怪的是,更新似乎每次尝试都会起作用。

无论如何,这是新的 web.config...感谢您提供的任何帮助。

<configuration>    
  <connectionStrings>
    <remove name="LocalSqlServer" />
    <add name="CI1ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|CI1.mdb" providerName="System.Data.OleDb" />
    <add name="AppCtlConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|CI1AppCtl.mdb" providerName="System.Data.OleDb" />
    <add name="SurveyConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|CI1Surveys.mdb" providerName="System.Data.OleDb" />
    <add name="LogFileConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|CI1SystemLogs.mdb" providerName="System.Data.OleDb" />
  </connectionStrings>

  <system.web>
    <httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" />
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" validateRequest="false" enableEventValidation="false" viewStateEncryptionMode="Never" enableViewStateMac="false">
      <controls>
          <add tagPrefix="asp" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" />
      </controls>
    </pages>

      <httpHandlers>
          <remove verb="*" path="*.asmx"/>
          <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
          <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
          <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="EOWebRuntime" type="EO.Web.Runtime,EO.Web" />
          <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      </httpModules>

      <sessionState allowCustomSqlDatabase="true" cookieless="UseCookies" mode="SQLServer" sqlCommandTimeout="600" 
        sqlConnectionString="Data Source=tcp:s05.winhost.com;Initial Catalog=DB_25270_blackrobot;User ID=DB_25270_blackrobot_user;Password=itstime2work;Integrated Security=False;" timeout="120">
    </sessionState>

    <identity impersonate="false" />
    <trust level="Full" />
    <customErrors defaultRedirect="CTL_Problem.aspx" />
    <compilation batch="true" batchTimeout="900" debug="true" defaultLanguage="c#" explicit="true" numRecompilesBeforeAppRestart="15" strict="false" targetFramework="4.0">
      <assemblies>
          <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
          <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
          <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
      </assemblies>
    </compilation>
    <globalization culture="en-AU" enableClientBasedCulture="true" uiCulture="en-AU" />
  </system.web>

  <system.net>
    <mailSettings>
      <smtp>
        <network defaultCredentials="true" host="localhost" />
      </smtp>
    </mailSettings>
  </system.net>

  <system.webServer>
      <validation validateIntegratedModeConfiguration="false" />
      <modules runAllManagedModulesForAllRequests="true" >
          <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      </modules>
      <handlers>
          <remove name="WebServiceHandlerFactory-Integrated"/>
          <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
          <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
          <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      </handlers>

      <urlCompression doDynamicCompression="true" />
      <rewrite>
          <rules>
              <rule name="cwme.org.au" stopProcessing="true">
                  <match url=".*" />
                  <conditions>
                      <add input="{HTTP_HOST}" pattern="^(www.)?cwme.org.au" />
                      <add input="{PATH_INFO}" pattern="^/Amna/" negate="true" />
                  </conditions>
                  <action type="Rewrite" url="\Amna\{R:0}" />
              </rule>
          </rules>
      </rewrite>

      <defaultDocument>
      <files>
        <clear />
          <add value="default.aspx" />
          <add value="index.aspx" />
      </files>
    </defaultDocument>
  </system.webServer>

  <location path="Styles/Site.css">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
  <location path="data">
    <system.web>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
  </location>
  <location path="functions">
    <system.web>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
  </location>
</configuration>

I am fairly new at this and am having a problem deploying my web site (ASP.net with some AJAX components) and have been going mad trying to find an explanation.

Generally everything works with one exception, the pages that are using the AJAX HTMLEditor are not working when reading / updating / deleting from an MS Access database. I have other AJAX controls on the pages (Such as calendar extender) which appear to be working properly. I also have fiorms with textbox's which all update the database correctly.

I have 2 test environments both running IIS 7 and both work as they should. The Visual Studio2010 development testing also works correctly.

I suspect that the problem lies in the IIS configuration or web.config settings.

Any help would be appreciated, I have been looking for answers for a few days and am fast approaching insanity...

Thanks in advance.

This is the web.config that currently works on my test server using IIS 7.

<configuration>
    <connectionStrings>
        <remove name="LocalSqlServer" />
        <add name="CI1ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0 ;Data          Source=|DataDirectory|CI1.mdb"
    providerName="System.Data.OleDb" />
        <add name="AppCtlConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=|DataDirectory|CI1AppCtl.mdb"
    providerName="System.Data.OleDb" />
        <add name="SurveyConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=|DataDirectory|CI1Surveys.mdb"
    providerName="System.Data.OleDb" />
        <add name="LogFileConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=|DataDirectory|CI1SystemLogs.mdb"
    providerName="System.Data.OleDb" />
    </connectionStrings>

    <system.web>
        <httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" />
        <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" validateRequest="false"
    enableEventValidation="false" viewStateEncryptionMode="Never" enableViewStateMac="false" >
            <controls>
                <add tagPrefix="asp" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" />
            </controls>
        </pages>
        <httpModules>
            <add name="EOWebRuntime" type="EO.Web.Runtime,EO.Web"/>
        </httpModules>
        <httpHandlers>
        </httpHandlers>

        <sessionState mode="InProc" timeout="120" />

        <identity impersonate="false" />
        <trust level="Full" />
        <customErrors defaultRedirect="CTL_Problem.aspx" />
        <compilation batch="true" batchTimeout="900" debug="true" defaultLanguage="c#" explicit="true" numRecompilesBeforeAppRestart="15" strict="false" targetFramework="4.0">
        <assemblies>
            <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
            <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        </assemblies>
        </compilation>
        <globalization culture="en-AU" enableClientBasedCulture="true" uiCulture="en-AU" />
    </system.web>

    <system.net>
        <mailSettings>
            <smtp>
                <network defaultCredentials="true" host="localhost" />
            </smtp>
        </mailSettings>
    </system.net>

    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <modules runAllManagedModulesForAllRequests="true" />
        <defaultDocument>
        <files>
            <clear />
            <add value="default.aspx" />
            <add value="index.aspx" />
        </files>
        </defaultDocument>
    </system.webServer>

    <location path="Styles/Site.css">
        <system.web>
            <authorization>
                <allow users="*" />
            </authorization>
        </system.web>
    </location>
    <location path="data">
        <system.web>
            <authorization>
                <deny users="?" />
            </authorization>
        </system.web>
    </location>
    <location path="functions">
        <system.web>
            <authorization>
              <deny users="?" />
            </authorization>
        </system.web>
    </location> 
</configuration> 

Ok I have done some more exploration and updated my web.config (see below). The behavior now has the page able to read the data (not every time though) and update the database (insert and update) randomly. Seriously weird how the update appears to work on every second attempt.

Anyway here is the new web.config..... Thanks for any help possible.

<configuration>    
  <connectionStrings>
    <remove name="LocalSqlServer" />
    <add name="CI1ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|CI1.mdb" providerName="System.Data.OleDb" />
    <add name="AppCtlConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|CI1AppCtl.mdb" providerName="System.Data.OleDb" />
    <add name="SurveyConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|CI1Surveys.mdb" providerName="System.Data.OleDb" />
    <add name="LogFileConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|CI1SystemLogs.mdb" providerName="System.Data.OleDb" />
  </connectionStrings>

  <system.web>
    <httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" />
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" validateRequest="false" enableEventValidation="false" viewStateEncryptionMode="Never" enableViewStateMac="false">
      <controls>
          <add tagPrefix="asp" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" />
      </controls>
    </pages>

      <httpHandlers>
          <remove verb="*" path="*.asmx"/>
          <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
          <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
          <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="EOWebRuntime" type="EO.Web.Runtime,EO.Web" />
          <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      </httpModules>

      <sessionState allowCustomSqlDatabase="true" cookieless="UseCookies" mode="SQLServer" sqlCommandTimeout="600" 
        sqlConnectionString="Data Source=tcp:s05.winhost.com;Initial Catalog=DB_25270_blackrobot;User ID=DB_25270_blackrobot_user;Password=itstime2work;Integrated Security=False;" timeout="120">
    </sessionState>

    <identity impersonate="false" />
    <trust level="Full" />
    <customErrors defaultRedirect="CTL_Problem.aspx" />
    <compilation batch="true" batchTimeout="900" debug="true" defaultLanguage="c#" explicit="true" numRecompilesBeforeAppRestart="15" strict="false" targetFramework="4.0">
      <assemblies>
          <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
          <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
          <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
      </assemblies>
    </compilation>
    <globalization culture="en-AU" enableClientBasedCulture="true" uiCulture="en-AU" />
  </system.web>

  <system.net>
    <mailSettings>
      <smtp>
        <network defaultCredentials="true" host="localhost" />
      </smtp>
    </mailSettings>
  </system.net>

  <system.webServer>
      <validation validateIntegratedModeConfiguration="false" />
      <modules runAllManagedModulesForAllRequests="true" >
          <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      </modules>
      <handlers>
          <remove name="WebServiceHandlerFactory-Integrated"/>
          <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
          <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
          <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      </handlers>

      <urlCompression doDynamicCompression="true" />
      <rewrite>
          <rules>
              <rule name="cwme.org.au" stopProcessing="true">
                  <match url=".*" />
                  <conditions>
                      <add input="{HTTP_HOST}" pattern="^(www.)?cwme.org.au" />
                      <add input="{PATH_INFO}" pattern="^/Amna/" negate="true" />
                  </conditions>
                  <action type="Rewrite" url="\Amna\{R:0}" />
              </rule>
          </rules>
      </rewrite>

      <defaultDocument>
      <files>
        <clear />
          <add value="default.aspx" />
          <add value="index.aspx" />
      </files>
    </defaultDocument>
  </system.webServer>

  <location path="Styles/Site.css">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
  <location path="data">
    <system.web>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
  </location>
  <location path="functions">
    <system.web>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
  </location>
</configuration>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只涨不跌 2024-12-25 15:13:01

啊啊我已经找到了问题并解决了它。经过详尽的研究后发现,我的主机上的资源分配已经耗尽。升级托管方案,将分配内存加倍,问题已解决!

每年多花100美元,比心理医生便宜很多!

ARGH I have found the problem and resolved it. After exhaustive research it turned out to be that the resource allocation on my host was being exhausted. Upgraded the hosting plan, doubled the allocated memory and the problem has been resolved!

$100 more p.a., a lot cheaper than the psycho doc!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文