2011-08-05 11 views
1

WindowsホームプレミアムISSサーバーでC#CGIアプリケーションを実行する際に問題が発生しました。 私のコードは次のとおりです。SQL LINQエラーを伴うCGIアプリケーション

 Console.Write("Content-Type: text/plain\n\n"); 
     string conn = "Data Source=|C:\\DB|\\RegisteredUsers.sdf"; 
     Console.WriteLine(conn); // Added for debugging 
     RegisteredUsers userdb = new RegisteredUsers(conn); //DBML file from SqlMetal Here 

私が手にエラーがある:

Data Source=RegisteredUsers.sdf 

Unhandled Exception: System.Configuration.ConfigurationErrorsException: Configuration  system failed to initialize ---> System.ArgumentException: Illegal characters in path. 
    at System.Security.Permissions.FileIOPermission.HasIllegalCharacters(String[] str) 
    at System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList) 
at System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, String path) 
at System.AppDomainSetup.VerifyDir(String dir, Boolean normalize) 
at System.AppDomainSetup.get_ConfigurationFile() 
at System.Configuration.ClientConfigPaths..ctor(String exePath, Boolean includeUserConfig) 
at System.Configuration.ClientConfigPaths.GetPaths(String exePath, Boolean includeUserConfig) 
at System.Configuration.ClientConfigurationHost.GetStreamName(String configPath) 
at System.Configuration.ClientConfigurationHost.get_IsAppConfigHttp() 
at System.Configuration.ClientConfigurationSystem..ctor() 
    at System.Configuration.ConfigurationManager.EnsureConfigurationSystem() 
    --- End of inner exception stack trace --- 
    at System.Configuration.ConfigurationManager.EnsureConfigurationSystem() 
    at System.Configuration.ConfigurationManager.PrepareConfigSystem() 
    at System.Configuration.ConfigurationManager.GetSection(String sectionName) 
    at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName) 
    at System.Data.Common.DbProviderFactories.Initialize() 
    at System.Data.Common.DbProviderFactories.GetFactoryClasses() 
    at System.Data.Linq.SqlClient.SqlProvider.GetProvider(String providerName) 
    at  Syst em.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Initialize(IData Services dataServices, Object connection) 
    at System.Data.Linq.DataContext.Init(Object connection, MappingSource mapping) 
    at System.Data.Linq.DataContext..ctor(String fileOrServerOrConnection, M appingSource mapping) 
    at Validate.Program.Main(String[] args) 

それはエラーが文字列conn = @"Data Source=RegisteredUsers.sdf";または RegisteredUsers userdb = new RegisteredUsers(conn);のいずれかであるようだと私は信じる理由はない、その文字列の定義それはだと思います。 RegisteredUsers userdb = new RegisteredUsers(conn);

答えて

0

接続文字列は逐語的な文字列リテラルであってはなりません。 @記号を取り除き、バックスラッシュでバックスラッシュをエスケープしてください。

+0

まだ動作しません。同じエラー。 行は現在: 文字列conn = "データソース= RegisteredUsers.sdf"; 私はちょうどcmdからEXEを起動する場合、これはうまく動作すると言いましたか? – DrAwesome

+1

こんにちは、あなたは言及していませんでしたが、これも試しましたか?文字列conn = "データソース= | DataDirectory | \\ RegisteredUsers.sdf"; –

+0

はい、私は無駄にしようとしました。 – DrAwesome

関連する問題