最近、asp.netアプリケーションをWindows 2003 /IIS6からWindowsIIS7に移動しました。他の変更はありませんが、fckeditorのファイルアップロードは機能しなくなりました。私がここで犯した明らかな間違いを誰もが知っています。:)
ありがとう
最も可能性の高い問題は、ターゲット フォルダーでアクセス許可を更新する必要があることです。IUSR にアップロード ディレクトリへの作成/書き込み権限があることを確認してください。
多分これが役立つでしょう。
私もそれを機能させることができませんでした。すべての権限を設定しました。デバッグによって、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 ファイルの一部です。
<!--
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 を開くためのセキュリティ上の問題は考慮しませんでした。お役に立てれば。
asp.net および iisuser_machinename ユーザーに権限があることを確認してください。
Sohneeが最も可能性の高い権限を言っているように、「uploads」フォルダーが実際に「public」フォルダーに存在することも確認してください(これがASPのどこにあるのかわかりません)。