Vb.net- এ সার্ভার ম্যানেজমেন্ট অবজেক্টস (এসএমও) ব্যবহার করার সময় আমি একই ত্রুটির মুখোমুখি হয়েছি (আমি নিশ্চিত যে এটি সি # তেও একই)
প্রাথমিক পোস্টে টেকি জোয়ের মন্তব্যটি একটি দরকারী সতর্কতা ছিল যে ভাগ করে নেওয়া হোস্টিংয়ে অতিরিক্ত অনেক কিছু চলছে things এটি নির্ধারণ করতে কিছুটা সময় নিয়েছিল, তবে নীচের কোডটি দেখায় যে এসকিউএল ডাটাবেসগুলিতে অ্যাক্সেস করার ক্ষেত্রে কীভাবে একজনকে খুব নির্দিষ্ট হতে হবে। 'সার্ভার অধ্যক্ষ ...' ত্রুটিটি দেখা গেছে যখনই ভাগ করা হোস্টিং পরিবেশে এসএমও কলগুলি নির্দিষ্টভাবে নির্দিষ্ট ছিল না।
কোডের এই প্রথম বিভাগটি স্থানীয় এসকিউএল এক্সপ্রেস সার্ভারের বিরুদ্ধে ছিল এবং সাধারণ উইন্ডোজ প্রমাণীকরণের উপর নির্ভর করে। এই নমুনাগুলিতে ব্যবহৃত সমস্ত কোড এই কোড প্রকল্পের ওয়েবসাইট নিবন্ধে রবার্ট কানাসের এসএমও টিউটোরিয়াল ভিত্তিক :
Dim conn2 = New ServerConnection()
conn2.ServerInstance = "<local pc name>\SQLEXPRESS"
Try
Dim testConnection As New Server(conn2)
Debug.WriteLine("Server: " + testConnection.Name)
Debug.WriteLine("Edition: " + testConnection.Information.Edition)
Debug.WriteLine(" ")
For Each db2 As Database In testConnection.Databases
Debug.Write(db2.Name & " - ")
For Each fg As FileGroup In db2.FileGroups
Debug.Write(fg.Name & " - ")
For Each df As DataFile In fg.Files
Debug.WriteLine(df.Name + " - " + df.FileName)
Next
Next
Next
conn2.Disconnect()
Catch err As Exception
Debug.WriteLine(err.Message)
End Try
উপরের কোডটি স্থানীয় এসকিউএলএক্সপ্রেস সার্ভারে প্রতিটি ডাটাবেসের জন্য .mdf ফাইলগুলি সন্ধান করে কারণ প্রমাণীকরণ উইন্ডোজ দ্বারা পরিচালিত হয় এবং এটি সমস্ত ডাটাবেস জুড়ে বিস্তৃত।
নিম্নলিখিত কোডে .mdf ফাইলগুলির জন্য পুনরাবৃত্তি হওয়া 2 বিভাগ রয়েছে। এই ক্ষেত্রে ফাইলগ্রুপের সন্ধানের জন্য কেবল প্রথম পুনরাবৃত্তিটি কাজ করে এবং এটি কেবলমাত্র একটি একক ফাইল খুঁজে পায় কারণ সংযুক্তিটি ভাগ করে নেওয়া হোস্টিং পরিবেশে কেবল একটি একক ডাটাবেসের সাথে থাকে।
দ্বিতীয় পুনরাবৃত্তি, যা উপরে কাজ করে এমন পুনরাবৃত্তির অনুলিপি তাৎক্ষণিকভাবে চাপ দেয় কারণ এটি যেভাবে লেখা হয়েছে তা ভাগ করা পরিবেশে 1 ম ডাটাবেসটি অ্যাক্সেস করার চেষ্টা করে, যা ব্যবহারকারীর আইডি / পাসওয়ার্ড প্রয়োগ করে না, তাই এসকিউএল সার্ভারটি 'সার্ভার অধ্যক্ষ ...' ত্রুটির আকারে কোনও অনুমোদনের ত্রুটি প্রদান করে।
Dim sqlConnection1 As New System.Data.SqlClient.SqlConnection
sqlConnection1.ConnectionString = "connection string with User ID/Password to a specific database in a shared hosting system. This string will likely also include the Data Source and Initial Catalog parameters"
Dim conn1 As New ServerConnection(sqlConnection1)
Try
Dim testConnection As New Server(conn1)
Debug.WriteLine("Server: " + testConnection.Name)
Debug.WriteLine("Edition: " + testConnection.Information.Edition)
Debug.WriteLine(" ")
Dim db2 = testConnection.Databases("the name of the database to which the User ID/Password in the connection string applies")
For Each fg As FileGroup In db2.FileGroups
Debug.Write(fg.Name & " - ")
For Each df As DataFile In fg.Files
Debug.WriteLine(df.Name + " - " + df.FileName)
Next
Next
For Each db3 As Database In testConnection.Databases
Debug.Write(db3.Name & " - ")
For Each fg As FileGroup In db3.FileGroups
Debug.Write(fg.Name & " - ")
For Each df As DataFile In fg.Files
Debug.WriteLine(df.Name + " - " + df.FileName)
Next
Next
Next
conn1.Disconnect()
Catch err As Exception
Debug.WriteLine(err.Message)
End Try
সেই দ্বিতীয় পুনরাবৃত্তির লুপে কোডটি সূক্ষ্মভাবে সংকলন করে, তবে এসএমও সঠিক সংশ্লেষের সাথে সঠিকভাবে ডাটাবেস অ্যাক্সেস করতে সেটআপ করেনি, সেই প্রচেষ্টা ব্যর্থ হয়েছিল।
আমি যেমন এসএমও শিখছি তখন ভেবেছিলাম যে অন্যান্য নবজাতকরাও এই ত্রুটিটির আরও সহজ ব্যাখ্যা রয়েছে তা জানার জন্য প্রশংসা করতে পারে - আমরা কেবল এটি ভুলভাবে কোড করেছিলাম।