2012-07-05 3 views
1

저는 C# 웹 서비스를 개발 중입니다..NET에서 SQL Server 2008에 연결할 수 없습니다.

내 로컬 시스템에서 완벽하게 작동하는 웹 서비스를 배포했지만 가상 전용 서버에서 동일한 서비스를 실행하려고하면 오류가 반환됩니다.

이 내 연결 문자열이 전

Data Source = <serverinstance>\\SQLEXPRESS; Initial Catalog = DomainTable; User ID= <serverinstance>\\admin; Password = <Windows_Login_Password> 

내가 그들의

Data Source=<serverinstance>\\SQLEXPRESS; Initial Catalog=DomainTable; Integrated Security=SSPI"; 

아무도 나를 위해 작동하지 않습니다이 연결 문자열을 사용하고 있습니다. 그것의 정말로 중요한 것을 도와주세요.

+0

데이터베이스가 정말 호스팅 구조의 구체적인 지식없이 세드릭 이야기하기 어렵다 IIS와 동일한 컴퓨터에서 실행 하시겠습니까? –

+1

' (서버 이름, 로컬 호스트, IP 주소 등)에 대한 내용과 "오류를 반환하는" 의미 - 예 : 실제 오류 *를 포함합니다. –

+0

예 sqlserver 2008이 동일한 컴퓨터에 설치되었습니다. – Pirate

답변

2

데이터 소스 = serverinstance \ SQLEXPRESS;
-----------------------------------------^여기에 단 하나의 슬래시가 있습니다

<serverinstance>으로 참조한 내용을 원격 서버에서 볼 수 있어야합니다. 이 주소는 localhost이지만 웹 서버는 컴퓨터가 localhost로 간주하지 않습니다. 특히 이름이 다른 도메인에있는 경우 이름으로 연결할 수 없습니다.

Windows 인증을 사용하려는 경우, 당신이 사용되어야한다 지구에 방법이 없다 :

사용자 ID = serverinstance의 \ 관리자는; 암호 =

와우 Windows_Login_Password

, 결코 하드 코드 Windows 암호 어디서나. SQL 인증을 사용하려면 설정하십시오. 그렇지 않으면 사용자 ID/암호 대신 다음을 사용해야합니다.

Persist Security Info = true;

그리고 IIS 사용자에게 SQL Server에 대한 액세스 권한이 부여되었는지 확인하십시오.

+0

전체 문자열이 큰 따옴표로 묶여 있으므로 이중 백 슬래시를 사용하고 있습니다. – Pirate

+0

C#에서는 그렇게 할 필요가 없습니다. –

0

그냥 시도해보십시오.

"data source=.\\SQLEXPRESS;Integrated Security=SSPI;initial catalog=DomainTable" 

일반적으로 사용자 이름/암호는 원격 연결에만 필요하며 지정한 DB에 대해 설정해야한다고 생각합니다. 위의 연결 문자열은 로그인 자격 증명이 필요하지 않은 경우 로컬 시스템에서 실행중인 sqlexpress 인스턴스로 이동해야합니다.

편집

당신이 호스팅하는 IIS를 사용하는 경우, 여기에 내가 SQL Express를 2008에서 작동하도록 응용 프로그램 풀을 배포 및 설치를 위해 한 최근 기사 덩어리 당신은 IIS를 사용하지 않는 경우에도 , 당신은 여전히 ​​호스팅 환경이 SQL Server로 올바르게 설정되도록하기 위해 이와 같은 작업을 수행해야합니다.

1 단계, MS SQL 서버의 보안 섹션에서 IIS 사용자

에 대한 DB 로그온을 만들기 마우스 오른쪽 버튼으로 클릭 사용자와 섹션 1에서 만든 IIS AppPool을 (IIS AppPool을 \의 AppPoolName을, 단계 필요 . 단계에 의해 단계 더 여기 2) .Check 밖으로 DP의 대답 - DB를

의 IIS 사용자에 대한 Add IIS 7 AppPool Identities as SQL Server Logons

2 단계 권한 설정을 마우스 오른쪽 데이터베이스 이름을 클릭하고 속성을 클릭합니다. 사용 권한 섹션에서 방금 만든 APPPOOL 사용자를 추가하고 필요한 Execute \ Select 권한을 부여하십시오.

참고 : Website1에는 실행, 선택, 삭제, 삽입 권한도 필요합니다. 웹 사이트 2는 또한이 앱 풀을 사용하고 있습니다. 왜냐하면 우리는 사용자가 trimdynamics 애플리케이션 내에서 그런 종류의 기능을 가질 필요가 없기 때문입니다. 우리는 우리의 트림 다이나믹스 IIS USRS가 단지 실행 및 선택 권한을 얻도록 어플리케이션 풀을 분리 할 수 ​​있습니다. 생산 환경 :(에 많은의 gotch 야의 배포 할 때 개발에서의이 있기 때문에이 문제가 해결되지 않으면

,

+0

죄송합니다. chris 나는 이것 역시 시도했지만 작동하지 않습니다. ( – Pirate

+1

@Pirate DEFINE "작동하지 않음"하시기 바랍니다. *** 실제 오류 메시지 ***를 추가하십시오! –

+0

@Pirate가 개발 서버가 필요합니다. 처음에는 많은 두통을 겪었습니다. 이런 식으로 생각해야합니다. - 이제 IIS/일부 서비스는 로컬 컴퓨터가 아닌 웹 사이트를 호스팅하고 있으며, 상황은 약간 다릅니다. 개발 환경에서 모든 것이 권한이있는 현재 사용자로 쿼리를 실행하기 때문에 잘 작동합니다.예를 들어 IIS에서 응용 프로그램을 호스팅 할 때 자동으로 사용 권한이없는 DB에서 쿼리를 실행하려는 IIS 풀이 있습니다. 당신은 사용자 권한 오류를 수신하고 있습니까 – clamchoda

관련 문제