ข้อผิดพลาด MSSQL 'ผู้ให้บริการที่ล้มเหลวในการเปิด'


220

ฉันถูกใช้.mdfสำหรับเชื่อมต่อกับและdatabase entityClientตอนนี้ฉันต้องการเปลี่ยนสตริงการเชื่อมต่อเพื่อที่จะไม่มี.mdfไฟล์

คือต่อไปนี้connectionStringถูกต้องหรือไม่

<connectionStrings>
   <!--<add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQL2008;AttachDbFilename=|DataDirectory|\NData.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />-->
   <add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQL2008;Initial Catalog=NData;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

เนื่องจากฉันได้รับข้อผิดพลาด:

ผู้ให้บริการที่พื้นฐานล้มเหลวในการเปิด


2
ฉันมีปัญหาเดียวกันที่นี่เมื่อฉันพยายามเรียกใช้ภายใต้ IIS ถ้าฉันทำงานใน VS Server ฉันจะไม่ผิดพลาด
Zote

11
ฉันมีปัญหาเดียวกันและลบออกIntegrated Securityจาก connectionstring สร้างผู้ใช้และทำให้แน่ใจว่าพวกเขามีsysadminสิทธิ์และเพิ่มผู้ใช้นั้นไปยัง connectionstring
fulvio

ฐานข้อมูลของคุณอยู่ที่ไหนถ้าอยู่ในแอปพลิเคชันที่โฮสต์บน IIS คุณควรวางฐานข้อมูลของคุณไว้ในโฟลเดอร์ App_Data ของคุณและแก้ไขสตริงการเชื่อมต่อที่สร้างโดยรุ่น Entityframework เพื่อค้นหาที่นั่น stackoverflow.com/questions/9809442/…
eran otzap

ฉันมีปัญหานี้และแก้ไขได้โดยการใส่รหัสผ่านในสตริงการเชื่อมต่อ
satyrFrost

เพียงแค่ลบการรักษาความปลอดภัยแบบบูรณาการทำงานสำหรับฉันเมื่อทำงานภายใต้ IIS
Jon

คำตอบ:


215

ฉันพบข้อผิดพลาดนี้และพบวิธีแก้ไขปัญหาบางประการ:

ดูที่สตริงการเชื่อมต่อของคุณมันดูถูกต้อง ผมพบว่าการโพสต์บล็อกนี้ปัญหาที่นี่เป็นที่พวกเขาใช้การรักษาความปลอดภัยแบบบูรณาการ หากคุณใช้งาน IIS ผู้ใช้ IIS ของคุณต้องเข้าถึงฐานข้อมูล

ถ้าคุณกำลังใช้Entity Framework กับทรานแซคชัน Entity Framework จะเปิดและปิดการเชื่อมต่อกับการเรียกฐานข้อมูลแต่ละครั้งโดยอัตโนมัติ ดังนั้นเมื่อใช้ธุรกรรมคุณกำลังพยายามกระจายธุรกรรมผ่านการเชื่อมต่อที่หลากหลาย ค้อมนี้MSDTC

( ดูข้อมูลอ้างอิงนี้สำหรับข้อมูลเพิ่มเติม )

เปลี่ยนรหัสของฉันเป็นดังต่อไปนี้แก้ไขได้:

using (DatabaseEntities context = new DatabaseEntities())
{
    context.Connection.Open();
    // the rest
}

7
จะทำอย่างไรเมื่อใช้ Linq เพื่อเข้าถึงตาราง (โดยใช้ EF4)
Brett Rigby

2
@Brett Rigby: stackoverflow.com/questions/794707/…ครอบคลุมวิธีการทำเช่นนี้กับ Linq / EF
Scott Stafford

63
หากคุณใช้ EF / DBContext การโทรที่ถูกต้องคือ context.Database.Connection.Open ();
รักสด

2
ฉันหวังว่าฉันจะอ่านโพสต์ของคุณแทนที่จะอ่านมันเป็นรหัสเมื่อฉันพบมันครั้งแรก ปัญหาของฉัน (ตามที่ระบุไว้ในคำตอบนี้) คือผู้ใช้ AppPool สำหรับบริบทปลั๊กอิน CRM 2011 ไม่มีสิทธิ์ในการเขียนเพื่อเข้าถึงฐานข้อมูลที่ฉันตั้งค่า เมื่อฉันเพิ่มผู้ใช้ใน SQL ปลั๊กอินทำงานเหมือนมีเสน่ห์
Mike_Matthews_II

2
ฉันไม่ได้มีสตริงการเชื่อมต่อในการตั้งค่าของฉันตั้งชื่อตามบริบทที่ฉันสร้าง ....... ตรวจสอบว่า
Bill Blankenship

38

context.Connection.Open() ไม่ได้ช่วยแก้ปัญหาของฉันดังนั้นฉันจึงลองเปิดใช้งาน "อนุญาตลูกค้าระยะไกล" ในการกำหนดค่า DTC ไม่มีข้อผิดพลาดอีกต่อไป

ใน windows 7 คุณสามารถเปิดการกำหนดค่า DTC โดยเรียกใช้ dcomcnfg, บริการคอมโพเนนต์ -> คอมพิวเตอร์ -> คอมพิวเตอร์ของฉัน -> ผู้ประสานงานการทำธุรกรรมแบบกระจาย -> คลิกขวาที่ Local DTC -> ความปลอดภัย


11
ใน windows 7 คุณสามารถเปิดการกำหนดค่า DTC โดยเรียกใช้dcomcnfg , บริการคอมโพเนนต์ -> คอมพิวเตอร์ -> คอมพิวเตอร์ของฉัน -> ผู้ประสานงานการทำธุรกรรมแบบกระจาย -> คลิกขวาที่ Local DTC -> ความปลอดภัย
kerem

7
จริง ๆ แล้วคลิกขวาที่ Local DTC -> Properties -> Security
Otto Abnormalverbraucher

27

คุณควรเห็นinnerExceptionเพื่อดูสาเหตุที่ทำให้เกิดข้อผิดพลาดภายใน

ในกรณีของฉันข้อผิดพลาดเดิมคือ:

ไม่สามารถเปิดไฟล์ทางกายภาพ "D: \ Projects2 \ xCU \ xCU \ App_Data \ xCUData_log.ldf" ข้อผิดพลาดของระบบปฏิบัติการ 5: "5 (ปฏิเสธการเข้าถึง)" ความพยายามในการแนบฐานข้อมูลที่มีชื่อโดยอัตโนมัติสำหรับไฟล์ D: \ Projects2 \ xCU \ xCU \ App_Data \ xCUData.mdf ล้มเหลว มีฐานข้อมูลชื่อเดียวกันหรือไฟล์ที่ระบุไม่สามารถเปิดได้หรืออยู่ในส่วนแบ่งของ UNC

ซึ่งแก้ไขได้โดยให้สิทธิ์เต็มที่แก่ผู้ใช้ปัจจุบันในการเข้าถึงไฟล์ที่เกี่ยวข้องmdfและldfใช้คุณสมบัติของไฟล์


24

ฉันพบปัญหาคือว่าฉันมีเส้นทางเซิร์ฟเวอร์ภายในสตริงการเชื่อมต่อในหนึ่งในตัวแปรเหล่านี้:

SERVER\SQLEXPRESS
SERVER

เมื่อไหร่ที่ฉันควรจะมี:

.\SQLEXPRESS

ด้วยเหตุผลบางอย่างฉันพบข้อผิดพลาดเมื่อใดก็ตามที่มีปัญหาในการค้นหาอินสแตนซ์ของ SQL


6
อาจเป็นเพราะคุณไม่ได้ตั้งชื่อไปป์เป็นวิธีการเชื่อมต่อสำหรับ SQL Server
พอล

1
@ พอลขอบคุณ อาจเป็นไปได้ว่าเนื่องจากเป็นการติดตั้ง SQL ใหม่ซึ่งเปิดใช้งานด้วยการตั้งชื่อไปป์ ขอบคุณสำหรับหัวขึ้น. +1
dooburt

1
ขอบคุณสำหรับสิ่งนี้ฉันมีปัญหานี้เนื่องจากท่อที่ระบุชื่อถูกปิดใช้งาน
Patrick Allwood

15

นี่เป็นปัญหาทั่วไปเท่านั้น แม้ว่าฉันจะต้องเผชิญกับปัญหานี้ บนเครื่องพัฒนา, กำหนดค่าด้วยการรับรองความถูกต้องของ Windows, มันทำงานได้อย่างสมบูรณ์:

<add name="ShoppingCartAdminEntities" connectionString="metadata=res://*/ShoppingCartAPIModel.csdl|res://*/ShoppingCartAPIModel.ssdl|res://*/ShoppingCartAPIModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQlExpress;initial catalog=ShoppingCartAdmin;Integrated Security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

เมื่อโฮสต์ใน IIS ด้วยการกำหนดค่าเดียวกันฉันได้รับข้อผิดพลาดนี้:

ผู้ให้บริการที่พื้นฐานล้มเหลวในการเปิด

มันแก้ไขการเปลี่ยนแปลงconnectionStringในไฟล์การกำหนดค่า:

<add name="MyEntities" connectionString="metadata=res://*/ShoppingCartAPIModel.csdl|res://*/ShoppingCartAPIModel.ssdl|res://*/ShoppingCartAPIModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=MACHINE_Name\SQlExpress;initial catalog=ShoppingCartAdmin;persist security info=True;user id=sa;password=notmyrealpassword;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

ข้อผิดพลาดทั่วไปอื่น ๆ อาจเป็น:

  1. บริการฐานข้อมูลอาจหยุดทำงาน
  2. แอตทริบิวต์แหล่งข้อมูลชี้ไปที่ฐานข้อมูลท้องถิ่นด้วยการรับรองความถูกต้องของ Windows และโฮสต์ใน IIS
  3. ชื่อผู้ใช้และรหัสผ่านอาจผิด

สำหรับฉันปัญหาคือเมื่อฉันสร้างรูปแบบข้อมูล EF มันสร้างสตริงการเชื่อมต่อที่ใช้ข้อมูลเข้าสู่ระบบจากการเชื่อมต่อข้อมูลใน VS ไม่มีผู้ใช้หรือรหัสผ่านอยู่ในสตริงการเชื่อมต่อดังนั้นลบIntegrated Security=Trueและแทนที่ด้วยuser id=sa;password=notmyrealpasswordเพื่อแก้ไขปัญหาการปรับใช้นี้
LostNomad311

10

เมื่อคุณได้รับข้อยกเว้นนี้ให้ขยายรายละเอียดและดูที่รายละเอียดข้อยกเว้นด้านในเนื่องจากจะให้รายละเอียดเกี่ยวกับสาเหตุการเข้าสู่ระบบล้มเหลว ในกรณีของฉันสตริงการเชื่อมต่อมีผู้ใช้ที่ไม่สามารถเข้าถึงฐานข้อมูลของฉัน

ไม่ว่าคุณจะใช้การรักษาความปลอดภัยแบบรวม (บริบทของการล็อกอินในผู้ใช้ Windows) หรือบัญชี SQL แต่ละบัญชีตรวจสอบให้แน่ใจว่าผู้ใช้มีการเข้าถึงที่เหมาะสมภายใต้ 'ความปลอดภัย' สำหรับฐานข้อมูลที่คุณพยายามเข้าถึงเพื่อป้องกันปัญหานี้


ฉันมีปัญหาเช่นเดียวกับโพสต์ต้นฉบับยืนยันชื่อโฮสต์ของฉันและยืนยันในข้อยกเว้นภายในที่ฉันใช้ชื่อผู้ใช้ที่ถูกต้อง ความปลอดภัยของผู้ใช้ SSMS ดูถูกต้อง - บัญชี SQL Server ได้รับการตั้งค่าอย่างเหมาะสมและมีการเข้าถึงฐานข้อมูลสาธารณะ แต่การเข้าสู่ระบบล้มเหลว
รหัสกับ Hammer

อะไรinner exceptionรัฐเป็นปัญหาหรือไม่ นั่นคือคำตอบของฉันที่นี่ที่จะให้รายละเอียดเพิ่มเติมที่ซ่อนอยู่ที่จำเป็นในการเข้าใจปัญหาพื้นฐานที่แท้จริง inner exceptionจะไม่ตรวจสอบว่าคุณมีการเข้าสู่ระบบที่ถูกต้อง - เป็นข้อยกเว้นไม่ชี้แจง
atconway

Login failed for user 'user'.
รหัสกับ Hammer

ฉันยังพยายามเพิ่มNT AUTHORITY\NETWORK SERVICEลงในรายการผู้ใช้ SQL Server ฉันยังคงมีการเข้าสู่ระบบที่ถูกปฏิเสธล้มเหลว
รหัสกับ Hammer

แก้ไข ผมจำเป็นต้องมีการเปลี่ยนแปลงไปdata source hostname\SQLEXPRESSฉันได้ลองhostnameและ.\SQLEXPRESSก่อนหน้านี้ จากนั้นฉันก็สามารถเชื่อมต่อกับความปลอดภัยในตัวได้ นี่เป็นคำตอบที่ตรงกันข้ามกับคำตอบของdooburt อยากรู้ว่าชื่อผู้ใช้ SQL Server นั้นไม่สามารถเชื่อมต่อจาก Visual Studio ได้
รหัสกับ Hammer

6

ผมมีปัญหาที่คล้ายกันกับSQL Server Express Edition ที่บนWindows Server 2003 ฉันเพิ่งเพิ่มบริการเครือข่ายเป็นผู้ใช้ในการรักษาความปลอดภัยฐานข้อมูล


4
คุณอธิบายได้อย่างไรว่าคุณทำอย่างนั้น?
ปีเตอร์มอร์เทนเซ่น

4

บริการ SQL Server Express ไม่ได้ตั้งค่าเริ่มต้นโดยอัตโนมัติ

1) ไปที่แผงควบคุม 2) เครื่องมือการดูแลระบบ 3) บริการ 4) ตั้งค่า SQL Server Express ให้เริ่มโดยอัตโนมัติโดยคลิกที่มัน 5) คลิกขวาและเริ่มบริการ

ฉันหวังว่าจะช่วย


3

สิ่งนี้อาจเกิดขึ้นได้หากคุณกู้คืนฐานข้อมูลและผู้ใช้มีอยู่แล้วด้วยสคีมาที่แตกต่างกันทำให้คุณไม่สามารถกำหนดสิทธิ์ที่ถูกต้องได้

เพื่อแก้ไขการวิ่งนี้:

USE your_database
EXEC sp_change_users_login 'Auto_Fix', 'user', NULL, 'cf'
GO
EXEC sp_change_users_login 'update_one', 'user', 'user'
GO

นี่เป็นปัญหาอย่างแน่นอน ฉันเพิ่งกู้คืนจากข้อมูลสำรอง ลองดูการวิเคราะห์รายละเอียด
nesimtunc

2

ฉันโพสต์ปัญหาที่คล้ายกันที่นี่ทำงานกับ SQL 2012 db ที่โฮสต์บน Amazon RDS ปัญหาเกิดขึ้นในสตริงการเชื่อมต่อ - ฉันมีคุณสมบัติ"ชื่อแอปพลิเคชัน"และ"แอป"ในนั้น เมื่อฉันลบสิ่งเหล่านี้ออกไปมันก็ใช้ได้

Entity Framework 5 และ Amazon RDS - "ผู้ให้บริการพื้นฐานไม่สามารถเปิดได้"


2

ตรวจสอบให้แน่ใจว่าแต่ละค่าองค์ประกอบในสตริงการเชื่อมต่อที่ให้มานั้นถูกต้อง ในกรณีของฉันฉันได้รับข้อผิดพลาดเดียวกันเนื่องจากชื่อของแค็ตตาล็อก (ชื่อฐานข้อมูล) ที่ระบุในสตริงการเชื่อมต่อไม่ถูกต้อง


1

ฉันมีปัญหาที่คล้ายกันที่มีข้อยกเว้นเนื่องจากสถานะการเชื่อมต่อจากนั้นฉันรู้ว่าฉันมีตัวแปรระดับบริการโดเมนของฉันถูกทำเครื่องหมายเป็นแบบคงที่ (โดยไม่ได้ตั้งใจ)

ฉันเดาว่าเมื่อห้องสมุดบริการโหลดลงในหน่วยความจำการโทรใหม่แต่ละครั้งจะสิ้นสุดลงโดยใช้ค่าตัวแปรแบบคงที่เดียวกัน (เช่นบริการโดเมน) ทำให้เกิดข้อขัดแย้งผ่านสถานะการเชื่อมต่อ

ฉันคิดว่าการโทรของลูกค้าแต่ละครั้งทำให้เกิดเธรดใหม่ดังนั้นมีหลายเธรดที่เข้าถึงอินสแตนซ์ของบริการโดเมนเดียวกันซึ่งบรรจุไว้กับซากรถไฟ


นี่คือสิ่งที่ทำเพื่อฉันเช่นกัน ดูเหมือนว่าถ้าคุณทำเครื่องหมายว่ามันคงที่มันแค่ทำให้เกิดปัญหาทุกประเภทกับอินสแตนซ์ที่มันพยายามจะทำงานด้วย
Michael J. Gray

1

ฉันมีปัญหาเดียวกัน แต่สิ่งที่ใช้ได้ผลสำหรับฉันคือลบสิ่งนี้ออกจาก Connection String:

persist security info=True


1

ฉันมีข้อผิดพลาดคล้ายกันโดยมีข้อยกเว้นภายในดังนี้:

การดำเนินการไม่ถูกต้องสำหรับสถานะของการทำธุรกรรม

ฉันสามารถแก้ไขได้โดยเปิดใช้งานการตั้งค่าความปลอดภัย DTC

ไปที่คุณสมบัติของ DTC ภายใต้แท็บความปลอดภัยตรวจสอบด้านล่าง

  • การเข้าถึงเครือข่าย DTC
  • อนุญาต RemoteClients
  • การสื่อสารผู้จัดการธุรกรรม
  • อนุญาตขาเข้า
  • อนุญาตขาออก

1

หากคุณได้รับข้อผิดพลาดนี้ในแอปพลิเคชันเว็บ ASP.NET นอกเหนือจากสิ่งอื่น ๆ ที่กล่าวถึงให้ตรวจสอบสิ่งต่อไปนี้:

  1. สิทธิ์ความปลอดภัยของผู้ใช้ฐานข้อมูล (ผู้ใช้รายใดที่ได้รับอนุญาตให้เข้าถึงฐานข้อมูลของคุณ
  2. ตรวจสอบพูลแอ็พพลิเคชันของคุณใน IIS และตรวจสอบให้แน่ใจว่าเป็นพูลที่ถูกต้องที่ได้รับอนุญาตให้เข้าถึงฐานข้อมูลของคุณ

1

ฉันได้กำจัดสิ่งนี้โดยการรีเซ็ตIISแต่ยังคงใช้Integrated Authenticationในสตริงการเชื่อมต่อ


1

การกำหนดกฎWindows Firewallใหม่สำหรับSQL Server (และสำหรับพอร์ต 1433) บนเครื่องเซิร์ฟเวอร์แก้ไขข้อผิดพลาดนี้ (หากชื่อเซิร์ฟเวอร์ของคุณชื่อผู้ใช้เข้าสู่ระบบหรือรหัสผ่านไม่ถูกต้องในสตริงการเชื่อมต่อของคุณ ... )


0

ข้อผิดพลาดทั่วไปที่ฉันทำเพราะฉันย้ายแอปพลิเคชันจากพีซีหนึ่งไปยังอีกเครื่องหนึ่งและไม่มีการทำงานใด ๆ ข้างต้นคือฉันลืมที่จะคัดลอกสตริงการเชื่อมต่อไปยังทั้ง App.Config และ Web.Config!


0

ฉันมีปัญหาที่คล้ายกัน: ในการดำเนินการกรณีทดสอบของฉันฉันมักจะได้รับข้อผิดพลาดนี้ ฉันพบว่า "การทำธุรกรรมการกระจายบริการ" ของฉันไม่ได้เริ่มต้น (รัน: services.msc -> เริ่มต้น "บริการการทำธุรกรรมแบบกระจาย" (ดีที่สุดเพื่อตั้งค่าให้เริ่มโดยอัตโนมัติ)) หลังจากที่ฉันทำอย่างนั้นมันทำงานเหมือนมีเสน่ห์ ...


0

ฉันคัดลอกไฟล์ฐานข้อมูล (.mdf / .ldf) ไปยังโฟลเดอร์ App_Data เพื่อกำจัดข้อยกเว้นนี้


0

ฉันกำลังเผชิญกับปัญหาเดียวกัน ตอนนี้ฉันทำได้โดยลบชื่อผู้ใช้และรหัสผ่านออกจากสตริงการเชื่อมต่อ


0

สำหรับฉันมันเป็นเพียงความผิดพลาดง่าย ๆ :

ฉันใช้Amazon EC2และฉันใช้ที่อยู่ IP แบบยืดหยุ่นของฉันในสตริงการเชื่อมต่อ แต่เมื่อฉันเปลี่ยนที่อยู่ IP ฉันลืมอัปเดตสตริงการเชื่อมต่อของฉัน


0

ฉันมีข้อผิดพลาดนี้เกิดขึ้นทันทีทันใดจากสีน้ำเงินบนเว็บไซต์ของเรา ในกรณีของฉันมันกลับกลายเป็นว่ารหัสผ่านของผู้ใช้ SQL หมดอายุ! การบอกเลิกการหมดอายุของรหัสผ่านในSQL Server Management Studioทำตามคำแนะนำ!


0

ฉันมีปัญหาเดียวกันเมื่อไม่กี่วันที่ผ่านมาโดยใช้ "Integrated Security = True;" ในสตริงการเชื่อมต่อคุณต้องเรียกใช้ข้อมูลประจำตัวกลุ่มแอปพลิเคชันภายใต้ "localsystem" ไม่แนะนำให้ทำเช่นนี้ แต่เพื่อการทดสอบ

นี่คือวิธีที่คุณสามารถเปลี่ยนข้อมูลประจำตัวใน IIS 7: http://www.iis.net/learn/manage/configuring-security/application-pool-identities


0

ในIIS ให้ตั้งค่ารหัสประจำตัวของแอพเป็นบัญชีผู้ใช้บริการหรือบัญชีผู้ดูแลระบบหรือบัญชีมดที่ได้รับอนุญาตให้ดำเนินการกับฐานข้อมูลนั้น


0

ในกรณีของฉันฉันมีความไม่ตรงกันระหว่างชื่อสตริงการเชื่อมต่อฉันลงทะเบียนในคอนสตรัคเตอร์ของบริบทเทียบกับชื่อใน web.config ของฉัน ข้อผิดพลาดง่าย ๆ ที่เกิดจากการคัดลอกและวาง: D

    public DataContext()
        : base(nameOrConnectionString: "ConnStringName")
    {
        Database.SetInitializer<DataContext>(null);
    }


0

ฉันมีข้อผิดพลาดเดียวกันฉันพบว่าเมื่อฉันเปลี่ยนการเชื่อมต่อของฉันไปยังแหล่งข้อมูลใหม่ฉันลืมเปลี่ยนชื่อผู้ใช้และรหัสผ่านสำหรับฐานข้อมูลใหม่


0

ฉันยังมีข้อผิดพลาดนี้เกิดขึ้นหากไม่ได้ระบุชื่ออินสแตนซ์ของเซิร์ฟเวอร์ SQL และโฮสต์ SQL มีอินสแตนซ์ของ SQL หลายตัวติดตั้งอยู่ นี่คือตัวอย่างสองสามข้อที่จะชี้แจง:

สตริงการเชื่อมต่อด้านล่างส่งผลให้เกิดข้อยกเว้น "ผู้ให้บริการที่ล้มเหลวในการเปิด" โดยไม่มีข้อยกเว้นภายในในแอป. NET WebForms:

 connectionString="metadata=res://*/Entities.csdl|res://*/Entities.ssdl|res://*/Entities.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=localhost;Initial Catalog=Entities;User ID=user;Password=password;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient"

สตริงการเชื่อมต่อต่อไปนี้ทำงานตามที่คาดไว้ในแอป. net WebForms ซึ่งสภาพแวดล้อม SQL มีหลายอินสแตนซ์ หายากฉันรู้ แต่ฉันมีอินสแตนซ์ SQL ที่ต่างกันเล็กน้อยในกล่อง dev ของฉันเพื่อรองรับโครงการต่าง ๆ :

 connectionString="metadata=res://*/Entities.csdl|res://*/Entities.ssdl|res://*/Entities.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=localhost\SQLSERVER2014;Initial Catalog=Entities;User ID=user;Password=password;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient"

0

ในกรณีที่อยู่เซิร์ฟเวอร์ของฉันมีการเปลี่ยนแปลงโดยผู้ดูแลเซิร์ฟเวอร์ดังนั้นฉันต้องเปลี่ยนสตริงการเชื่อมต่อไปยังที่อยู่เซิร์ฟเวอร์ใหม่


0

ฉันมีปัญหานี้เพราะการลงชื่อเข้าใช้กลุ่มแอพพลิเคชั่นนี้มีการเปลี่ยนแปลง

ใน IIS:

  • ค้นหากลุ่มแอปพลิเคชันโดยคลิกที่ไซต์ของคุณและไปที่การตั้งค่าพื้นฐาน

  • ไปที่ Application Pools

  • คลิกที่กลุ่มแอปพลิเคชันของไซต์ของคุณ

  • คลิกที่การตั้งค่าขั้นสูง

  • ใน Identity ให้ป้อนชื่อบัญชีและรหัสผ่าน

  • รีสตาร์ทไซต์ของคุณแล้วลองอีกครั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.