2009-05-26 29 views
0

いくつかのページでAjaxコントロールを使用する.NetのWebアプリケーションがあります。これらのページはlocalhostで動作していますが、ホストされると、Ajaxがインクルードしたページにはエラーが表示されます。ファイルまたはアセンブリをロードできませんでした

'/ Allforkids'アプリケーションでサーバーエラーが発生しました。

セキュリティ例外

説明:アプリケーションがセキュリティポリシーで許可されていない操作を実行しようとしました。このアプリケーションに必要な権限を与えるには、システム管理者に連絡するか、設定ファイルのアプリケーションの信頼レベルを変更してください。

例外の詳細:System.Security.SecurityException: 'System.Security.Permissions.FileIOPermission、mscorlib、Version = 2.0.0.0、Culture = neutral、PublicKeyToken = b77a5c561934e089'のアクセス許可の要求が失敗しました。

ソースエラー:

未処理の例外は、現在のWeb要求の実行中に生成されました。以下の例外スタックトレースを使用して、例外の起点および場所に関する情報を識別できます。

スタックトレース:

[SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.] 
    System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0 
    System.Security.CodeAccessPermission.Demand() +58 
    System.Reflection.Assembly.VerifyCodeBaseDiscovery(String codeBase) +118 
    System.Reflection.Assembly.get_CodeBase() +35 
    System.Web.Handlers.ScriptResourceHandler.GetCodeBaseWithAssert(Assembly assembly) +31 
    System.Web.Handlers.ScriptResourceHandler.GetLastWriteTime(Assembly assembly) +36 
    System.Web.Handlers.ScriptResourceHandler.GetAssemblyInfoInternal(Assembly assembly) +61 
    System.Web.Handlers.ScriptResourceHandler.GetAssemblyInfo(Assembly assembly) +62 
    System.Web.Handlers.RuntimeScriptResourceHandler.System.Web.Handlers.IScriptResourceHandler.GetScriptResourceUrl(Assembly assembly, String resourceName, CultureInfo culture, Boolean zip, Boolean notifyScriptLoaded) +325 
    System.Web.Handlers.ScriptResourceHandler.GetScriptResourceUrl(Assembly assembly, String resourceName, CultureInfo culture, Boolean zip, Boolean notifyScriptLoaded) +33 
    System.Web.UI.ScriptManager.GetScriptResourceUrl(String resourceName, Assembly assembly) +89 
    System.Web.UI.ScriptRegistrationManager.RegisterClientScriptResource(Control control, Type type, String resourceName) +111 
    System.Web.UI.ScriptManager.RegisterClientScriptResource(Control control, Type type, String resourceName) +9 

バージョン情報:Microsoft .NET Frameworkのバージョン:2.0.50727.3082。 ASP.NETバージョン:2.0.50727.3082

誰でもこのエラーを取り除くために適切な解決策を提供できますか?

答えて

1

これは、あなたのホスティングプロバイダを呼び出す必要があるようです。このエラーから、ホスティングサーバーの構成設定によってローカルファイルへのアクセスが禁止されているように見えます。ホスティングプロバイダがこれを取って代わるのmachine.configの設定を持っている場合、それは違いをすることはありません、

<system.web> 
    ... 
    <trust level="Medium" originUrl="" /> 
    ... 
</system.web> 

をしかし:

あなたのweb.configファイルにこれを追加してみてください。ここにはさらにinformationがあります。

+0

私はホスティングプロバイダのCrystalTechと同様の問題を抱えていて、サイトが別のサーバーに移動してしまいました。 – ichiban

1

あなたのフォルダ/ファイルに対するセキュリティ権限がある可能性があります。あなたは(Access DBのような)どんなファイルにも書いていますか?サーバー上のASP.Netマシンアカウント(PCName \ ASPNETなど)がそのフォルダにアクセスできることを確認します。

private void VerifyCodeBaseDiscovery(String codeBase) 
    {     
     if ((codeBase != null) && 
      (String.Compare(codeBase, 0, s_localFilePrefix, 0, 5, true, CultureInfo.InvariantCulture) == 0)) { 
      System.Security.Util.URLString urlString = new System.Security.Util.URLString(codeBase); 
      new FileIOPermission(FileIOPermissionAccess.PathDiscovery, urlString.GetFileName()).Demand(); 
     } 
    } 

例外は、スクリプトを含むファイルへのFileIOPermissionAccess.PathDiscoveryを求め.Demand()メソッドでスローされます。ここでは

0

は、アセンブリのクラスからのコードがあります。

私の推測では、IISワーカープロセスは、スクリプトを含むパスへのREAD/BROWSEアクセス権がありません。

独自のスクリプトをScriptManagerに登録している場合は、ファイルパス(通常の経験則として、スクリプトは親フォルダ(例:.. Scripts)フォルダ内にあるべきではありません)を確認してください。

この例外がAJAX Extensionsスクリプトリソースで発生した場合は、AJAX Extensionsのインストールに問題がある可能性があります。ホスティングプロバイダに確認する必要があります。

PS。スタックトレースにはそれ以上のものがありますか?スタックの最初の呼び出しが "RegisterClientScriptResource"であることは奇妙に思えます。

関連する問題