2011-08-05 6 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