0

最近、asp.netアプリケーションをWindows 2003 /IIS6からWindowsIIS7に移動しました。他の変更はありませんが、fckeditorのファイルアップロードは機能しなくなりました。私がここで犯した明らかな間違いを誰もが知っています。:)

ありがとう

4

4 に答える 4

4

最も可能性の高い問題は、ターゲット フォルダーでアクセス許可を更新する必要があることです。IUSR にアップロード ディレクトリへの作成/書き込み権限があることを確認してください。

于 2009-05-08T08:21:41.970 に答える
1

多分これが役立つでしょう。

私もそれを機能させることができませんでした。すべての権限を設定しました。デバッグによって、frmupload.html には isapi.dll に対する実行アクセス権がないことがわかりました。

IIS 7.0 では、左側の Web サイトに移動して強調表示しました。次に、右側のペインで、ハンドラー マッピングをクリックしました。上部で isapi と cgi が無効になっていることに気付きました。

以下を見ると、有効なすべてのハンドラーが表示されました。また、*.html 用のものはなく、* 用のものがあることにも気付きました。とにかく、有効なハンドラーがある下部ペインの任意の場所を右クリックすると、ショートカット メニューが表示されました。EDIT FEATURE PERMISSIONS は、クリックするオプションです。次に、読み取り、スクリプト、および実行のチェックボックスが表示されます。実行がチェックされていないことに気付いたので、チェックしました。

リストで ISAPI と CGI が有効になりました。FCKeditor でアップロードしてみましたが、うまくいきました。正しいファイル タイプを正しい領域にアップロードしていることを確認してください。そうしないと、無効なファイルまたは無効なファイル タイプのメッセージが表示される場合があります。

ただし、新しいエラーが発生し続けることに気付きました。SYS is undefined エラー メッセージが私の Web ページに表示されます。通常、何かが見つからない場合に発生する JavaScript エラーです。Google で検索すると、このエラー メッセージが表示される理由はたくさんあります。この場合は、Vista IIS7.0 を使用して ISAPI を実行権限で有効にしたためです。構成ファイルに入り、実行許可を有効にするための正しい設定変更を行いましたが、すべてのハンドラー設定が消去されました!!!!

webconfig のバックアップ コピーを取り、手動で設定を再追加しました。IIS7 で実行するのではなく、webconfig ファイルを手動で編集する方が良いと思いますが、設定の一部が消去される可能性があります。

これは、VISTA IIS7 Web サーバー上の私の webconfig ファイルの一部です。

WebConfig BEFORE: VISTA IIS 7.0 web.config で cgi と isapi の実行を有効にする

<!-- 
    The system.webServer section is required for running ASP.NET AJAX under Internet
    Information Services 7.0.  It is not necessary for previous version of IIS.
-->
<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
        <remove name="ScriptModule"/>
        <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </modules>
    <handlers>
        <remove name="WebServiceHandlerFactory-Integrated"/>
        <remove name="ScriptHandlerFactory"/>
        <remove name="ScriptHandlerFactoryAppServices"/>
        <remove name="ScriptResource"/>
        <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.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=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </handlers>
</system.webServer>
<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>

後: 注意してください

が追加され、すべてのハンドラーが消えます。それらを読み直したところ、うまくいきました。

<!-- 
    The system.webServer section is required for running ASP.NET AJAX under Internet
    Information Services 7.0.  It is not necessary for previous version of IIS.
-->
<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules>
        <remove name="ScriptModule" />
        <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </modules>
    <handlers accessPolicy="Read, Execute, Script">
    </handlers>
</system.webServer>
<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

私は開発マシン VISTA を使用しているため、Execute を開くためのセキュリティ上の問題は考慮しませんでした。お役に立てれば。

于 2009-12-05T18:43:00.560 に答える
0

asp.net および iisuser_machinename ユーザーに権限があることを確認してください。

于 2009-05-08T10:11:48.100 に答える
0

Sohneeが最も可能性の高い権限を言っているように、「uploads」フォルダーが実際に「public」フォルダーに存在することも確認してください(これがASPのどこにあるのかわかりません)。

于 2009-05-08T08:29:02.200 に答える