EF 4.1 ব্যতিক্রম "সরবরাহকারী কোনও সরবরাহকারী ম্যানিফেস্ট টোকেন স্ট্রিং ফিরিয়ে দেয়নি"


88

আমি এমএসডিএন-তে পাওয়া একটি উদাহরণ প্রতিলিপি দেওয়ার চেষ্টা করছি। আমি এএসপি.এনইটি এবং ইএফ 4.1 (সিটিপি?) ব্যবহার করছি। আমি এনটিটি ফ্রেমওয়ার্ক প্যাকেজ ইনস্টল করতে নিউগেট ব্যবহার করেছি।

আমি এই ত্রুটিটি পাচ্ছি: The provider did not return a ProviderManifestToken string... এবং ডেটাবেস কখনও তৈরি হয় না।

আমার সংযোগের স্ট্রিংটি এখানে:

<add name="HospitalContext"
   connectionString=
   "data source=.\SQLExpress;initial catalog=NewTestDB;integrated security=True;"
   providerName="System.Data.SqlClient"/>

আমার কোডটি এখানে:

var pat = new Patient { Name = "Shane123132524356436435234" };
db.Patients.Add(pat);

var labResult = new LabResult { Result = "bad", Patient = pat };

int recordAffected = db.SaveChanges();

এখানে আমার প্রসঙ্গ:

public class HospitalContext : DbContext
{
    static HospitalContext()
    {
        Database.SetInitializer(new HostpitalContextInitializer());
    }

    public DbSet<Patient> Patients { get; set; }
    public DbSet<LabResult> LabResults { get; set; }
}

public class HostpitalContextInitializer :
             DropCreateDatabaseIfModelChanges<HospitalContext>
{
    protected override void Seed(HospitalContext context)
    {
        context.Patients.Add(new Patient { Name = "Fred Peters" });
        context.Patients.Add(new Patient { Name = "John Smith" });
        context.Patients.Add(new Patient { Name = "Karen Fredricks" });
    }
}

এটি একটি সম্পূর্ণ প্যাচযুক্ত এসকিউএল 2008 সিস্টেম, ভিএস 2010 এসপি 1 সহ।


মডেলটিতে [কী] যুক্ত করার পরে মনে হবে এটি তার ইস্যুটির অতীত কাজ করে working আমি এখনও অন্য একটি সমস্যা নিয়ে আছি, তবে এটি সম্ভবত এটি সমাধান করেছে।
বুগুনুকার

এছাড়াও, এটি হতে পারে যে আমি আমার সংযোগের স্ট্রিংয়ের সাথে "
সংহত

কাজ করার সময় আমার একই ব্যতিক্রম হচ্ছেSqlServerCe.Entity.dll
ন্যানো তাবোদা

4
এই ব্যতিক্রমটিকে উস্কে দিতে পারে এমন সামগ্রীর স্বার্থে - আমি সংযোগের স্ট্রিংয়ের নামে টাইপকে পেছনে ফেলে 20 মিনিট ব্যয় করেছি যা প্রসঙ্গের নামের সাথে মেলে।
justSteve

উত্তর:


184

আমি এই ত্রুটিটি পেয়েছিলাম এবং আগের কয়েকটি পরামর্শের চেষ্টা করেছি। তারপরে আমি ইনার ব্যতিক্রমটি পরীক্ষা করে দেখেছি যে আমি ব্যবহারকারীর জন্য একটি সাধারণ এসকিউএল লগইন ব্যর্থতা পাচ্ছি। পরীক্ষা করার জন্য আরও কিছু।


আমার ক্ষেত্রে
এসকিএল

4
আমাকে সঠিক দিকে নির্দেশ করার জন্য ধন্যবাদ। আমার এসকিউএল এক্সপ্রেস পরিষেবাটি শুরু হয়নি - ডু!
camainc

ভাল ওল অভ্যন্তরীণ ব্যতিক্রম ... আমি যখন আমার নতুন ডিবি নামটি ভুল করেছিলাম যখন আমি ইএফটিকে একটি নতুন ব্যাকআপ অবস্থানের দিকে দেখিয়েছিলাম ... মজার বিষয়, আমি ইনারেক্স পরীক্ষা করেছিলাম এবং আপনার মন্তব্য আমাকে ফিরে যেতে এবং এটি পুনরায় পড়তে বাধ্য করেছে ... কুডোস!
অ্যান্ডি ডেঞ্জার গাগেন 21

ইন্টিগ্রেটেড সিকিউরিটি ব্যবহার করছিল, আইআইএস অ্যাপপুলের প্রয়োজনীয় অধিকার ছিল না।
ভিনসেন্ট ভ্যাঙ্কালবার্গ

+1 - (আমার হোম আইপি পরিবর্তন হয়েছে) ত্রুটি এমএসজি: লগইন দ্বারা অনুরোধ করা সার্ভার 'SERVERNAME' খুলতে পারে না। IP ঠিকানা 'MY_OLD_IP' সহ ক্লায়েন্টকে সার্ভার অ্যাক্সেস করার অনুমতি নেই। অ্যাক্সেস সক্ষম করতে, এই আইপি ঠিকানা বা ঠিকানা সীমার জন্য ফায়ারওয়াল নিয়ম তৈরি করতে এসকিউএল অ্যাজুরি পোর্টাল ব্যবহার করুন বা মাস্টার ডাটাবেসে sp_set_firewall_rule চালান। এই পরিবর্তনটি কার্যকর হতে পাঁচ মিনিটের বেশি সময় লাগতে পারে \ আপনার সহায়তার দরকার হলে গ্রাহক সহায়তায় এই ট্রেসিং আইডি সরবরাহ করুন "" D
ডিলান হেইস

8

এটি কখনও কখনও ঘটতে পারে যখন আপনি ভিজুয়াল স্টুডিওতে ভুল প্রকল্পের অ্যাপকনফিগের মধ্যে সংযোগের স্ট্রিং রাখেন।

উদাহরণস্বরূপ, আমি EF 4.1 (প্রকাশিত সংস্করণ) প্রকল্প + ডাব্লুসিএফ ডেটা সার্ভিস প্রকল্পে এই সমস্যা পেয়েছি এবং আমি লক্ষ্য করেছি যে ডেটা সার্ভিসেস প্রকল্পে আমার কোনও সংযোগের স্ট্রিং নেই, যেখানে এটি ব্যবহৃত হচ্ছে।


এটা আমার সমাধান ছিল। স্টার্টআপ প্রকল্পে আমাকে সঠিক সংযোগের স্ট্রিং রাখতে হয়েছিল।
মিকজুইস

5

আমি একই ত্রুটি ছিল, এবং আসলে এটি নির্দিষ্ট সার্ভারের জন্য লগইন ব্যর্থ হয়েছিল। আমি কনফিগার সংযোগ স্ট্রিং থেকে "ইন্টিগ্রেটেড সিকিউরিটি" বৈশিষ্ট্যটি সরিয়েছি এবং এটি কার্যকর হয়েছে।


এটি আমার পক্ষে কাজ করেছে। অন্য সমস্যাগুলি যদি কাজ না করে তবে যে কেউ এই সমস্যাটি নিয়েছে এটি চেষ্টা করা উচিত।
জাস্টিন

এসকিউএল এক্সপ্রেস পরিষেবাটি যখন আমার মেশিনে বন্ধ করা হয়েছিল তখন এই ত্রুটি হয়েছিল।
জন এম

4

আমারও একই সমস্যা ছিল এবং আমি আমার প্রসঙ্গের উদাহরণের পরে নীচের কোডটি যুক্ত করি (উদাহরণের মাধ্যমে অনলোড)

context.Database.Connection.ConnectionString = @"Data Source=.\SQLExpress;Initial Catalog=Test;Integrated Security=True";

4

MvcMusicStore অ্যাপ্লিকেশনটির সাথে আমারও একই সমস্যা ছিল। আমি ওয়েব দ্য কনফিগ-এ একটি লাইন "দৃষ্টান্ত = সত্য" থেকে "দৃষ্টান্ত = মিথ্যা" তে পরিবর্তন করেছি। এটি কখনও কখনও এই টুইটটি ছাড়া কাজ করে তবে আমি জানি না যে পার্থক্যের কারণ কী। এটি http://msdn.microsoft.com/en-us/library/ms254504.aspx পড়লে সত্যিই কোন উপকার হয়নি।


আশ্চর্যজনক ... এটি আমার পক্ষে সঠিক সমাধান ছিল। কেন আমি জানি না।
কিস সি বেকার

2

অনুমতির কিছু নির্দিষ্ট কারণে, EF ডাটাবেস সংযোগ তৈরি করতে পারে না। আমি একদিন সমস্ত একই সমস্যা সম্মুখীন ছিল। অবশেষে আমি সমাধানটি অনুসরণ করার চেষ্টা করেছি এবং এটি কাজ করেছে: একটি / ওপেন আইআইএস (আমি আইআইএস using ব্যবহার করছি) বি / অ্যাপলটির কোন উন্নত সেটিংস খুলুন যে ওয়েবসাইটটি ব্যবহার করছে (প্রাক্তন: ডিফল্ট অ্যাপপুল) সি / প্রক্রিয়া মডেল গ্রুপটি দেখুন, পরিচয়ের মান পরিবর্তন করুন "স্থানীয় সিস্টেম"

আশা করি এটি আপনার সাথে কাজ করবে।


2

আমার ঠিক একই সমস্যা ছিল ...
আমার জন্য যে সমাধানটি কাজ করেছিল তা হ'ল:
ক্লায়েন্ট নেটওয়ার্ক কনফিগারেশন সরঞ্জাম চালান (চালাতে ক্লিক করুনফোন টাইপ করুন)
এবং নিশ্চিত করুন যে টিসিপি / আইপি সক্ষম হয়েছে ..


2

আমি অবশেষে এটিকে ফাটিয়ে দিয়েছি - অনুমতি থেকে এটি ভেবে কিছুটা বুনো হংসের তাড়া পরে s

প্রকাশ: এসকিউএল সরবরাহকারীর ব্যবহার করুন

(দ্রষ্টব্য: আমি সম্প্রতি EF6 থেকে EF5 এ ডাউনগ্রেড করেছি)

এসকিউএল প্রোফাইলার ব্যবহার করে আমি রিপোর্ট করা ব্যর্থতার আগে শেষ হওয়া এসকিউএল দ্রুত পেয়েছিলাম:

SELECT TOP (1) 
[Project1].[C1] AS [C1], 
[Project1].[MigrationId] AS [MigrationId], 
[Project1].[Model] AS [Model]
FROM ( SELECT 
    [Extent1].[MigrationId] AS [MigrationId], 
    [Extent1].[Model] AS [Model], 
    1 AS [C1]
    FROM [dbo].[__MigrationHistory] AS [Extent1]
)  AS [Project1]
ORDER BY [Project1].[MigrationId] DESC

ভাল যে তাকান - মাইগ্রেশন সঙ্গে কিছু করতে। এটি __MigrationHistoryসারণীতে সন্ধান করছে - যা আমি এটি বুঝতে পেরেছিলাম না যে এটি তৈরি করেছে (আমি ইতিমধ্যে আমার সিএসপিআরজে মাইগ্রেশনগুলি মুছে ফেলেছিলাম) এবং এটি পরিষ্কার করে দিয়েছি।

সুতরাং আমি সেই টেবিলের জন্য সারিগুলি টানছি এবং দেখতে পাচ্ছি যে এটি কোনও নির্দিষ্ট পণ্যের সংস্করণ (v6) এর সাথে আবদ্ধ।

এখানে চিত্র বর্ণনা লিখুন

আমি আসলে ইএফ 6 (যা আমি প্রথম স্থানে ইনস্টল করার ইচ্ছা করিনি) থেকে ইএফ 5 (যা ভাস্কর্যের সাথে আরও সুসংগত) এ ডাউনগ্রেড করেছি এবং সমস্যাগুলি যখন শুরু হয়েছিল।

আমার অনুমান যে Model (<Binary data>)কলামটি পশ্চাদপটে সামঞ্জস্যপূর্ণ নয় - তাই The provider did not return a ProviderManifest instanceত্রুটিটি কারণ এটি ডিকোড করতে অক্ষম হয়েছিল।

আমার কাছে হারাতে কিছুই ছিল না এবং কেবল এই টেবিলটি পুরোপুরি মুছে ফেললাম এবং দৌড়ে গেল Update-Database -Verboseএবং তারপরে ফিরে এসে দৌড়াচ্ছিল।

আপনি যদি উন্নত পরিবেশে বা ইতোমধ্যে উত্পাদিত হয়ে থাকেন তবে এই টেবিলটি মুছে ফেলা সমাধান নাও হতে পারে, তবে এই ভাবেই আমাকে ঠিক কাজ করে ফিরে আসতে দেয়।


আমি __MigrationHistory টেবিলটি পুরোপুরি বাদ দিয়ে Add-Migrationএবং এর সাথে পুনরায় ফোল্ডিং শেষ করেছি Update-Database -Verbose -Force। এখানে একটি কমান্ডের রেফারেন্স কোডিং.এবেল.নুনু.২০
২০১৩ /

এটি হ'ল গুরুত্বপূর্ণ বিষয়টি কেবল একটি অনুমতি ত্রুটি নয়
সাইমন_উইভার

1

EF4.1 এবং ASP.NET MVC সহ ভিজ্যুয়াল স্টুডিও 11 বিটা ব্যবহার করার সময়, আমি না পাওয়া পর্যন্ত আমি প্রায় আমার চুল টানতে লাগলাম

http://connect.microsoft.com/VisualStudio/feedback/details/740623/asp-net-mvc-4-default-connication-string- অসাধারণ- পরীক্ষা করা

আমার সমস্যা সমাধানের জন্য, আমি অ্যাপ্লিকেশন_স্টার্টে গিয়ে পরিবর্তন করেছি

ডেটাবেস.ডাফল্টকনেকশনফ্যাক্টরি = নতুন এসকিএলসিঙ্কেশনফ্যাক্টরি ("ডেটা উত্স = (লোকালডিবি) \ v11.0; ইন্টিগ্রেটেড সিকিউরিটি = ট্রু; মাল্টিপলঅ্যাক্টিভর রিসাল্টসেটস = ট্রু");

প্রতি

ডাটাবেস.ডাফল্টকনেকশনফ্যাক্টরি = নতুন এসকিএলসিঙ্কেশনফ্যাক্টরি ( @ "ডেটা সোর্স = (লোকালডিবি) \ v11.0; ইন্টিগ্রেটেড সিকিউরিটি = ট্রু; মাল্টিপলএ্যাকটিভ রিসাল্টসেটস = ট্রু");


Database.DefaultConnectionFactory = new SqlConnectionFactory(@"Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True");আমার Mainমেহোডে যুক্ত হয়েছিল , এখন এটি কবজির মতো কাজ করে! আপনাকে অনেক ধন্যবাদ.
রটারগুলি

1

.Edmx ফাইলটি উন্মুক্ত থাকাকালীনই এই ত্রুটিটি উপস্থিত থাকে এবং ফাইলটি আবার বন্ধ হওয়ার সাথে সাথে অদৃশ্য হয়ে যায়।

কোডপ্লেক্সের এই উক্তি , এটি আমার সাথে কাজ করেছে (ভিজ্যুয়াল স্টুডিও 2013 / এমভিসি 5)


আমার সাথেও কাজ করেছেন। এডিএমএক্স ফাইলটি বন্ধ এবং পুনরায় খোলার চেষ্টা করা হয়েছে। কাজ করছে.
রোহিত

1

আপনি EF কোড প্রথম ব্যবহার করছেন কিনা তা বিবেচনা করার জন্য অন্য একটি বিষয় হ'ল এটি কখনও কখনও স্বয়ংক্রিয়ভাবে আপনার DbContext শ্রেণিতে ব্যাকিং ডেটাবেস তৈরি করে না। সমাধানটি হ'ল আপনার নিজের সংযোগের স্ট্রিং যুক্ত করুন - আপনি যে সংযোগ স্ট্রিংটি ব্যবহারকারীর / রেজিস্ট্রেশন ডেটাবেসকে হ্যান্ডেল করতে উপস্থিত হতে পারেন যা সাধারণ সদস্যতা সরবরাহকারীকে টেমপ্লেট হিসাবে সমর্থন করে। শেষ অবধি, আপনার তৈরি ডিবি কনটেক্সট ক্লাসের জন্য আপনাকে একটি ডিফল্ট কনস্ট্রাক্টর যুক্ত করতে হবে:

public ChaletDb():base("ChaletConnection")
    {

    }

এখানে, আপনি আপনার ওয়েব.কমফিগ ফাইলে প্রবেশের সাথে সংযোগের স্ট্রিংয়ের নামটি ডাটাবেস তৈরি করতে DbContext নির্দেশিত করতে ব্যবহৃত হয়। খুব মাঝেমধ্যে, আমাকে ম্যানুয়ালি ডেটাবেস তৈরি করতে হয়েছিল (এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিওতে) যা এটি কাজ করার অনুরোধ জানায়।


0

আমার একটি সমাধানে একাধিক প্রকল্প রয়েছে এবং প্রতিটি সময়ে বিভিন্ন প্রকল্পে EF যুক্ত করেছি। কিছু মেশিনে এটি কাজ করছিল এবং কিছুতে এটি পূর্বোক্ত ত্রুটির সাথে ব্যর্থ হয়েছিল। আমার প্রজেক্টের কিছু অ্যাপকনফাইগের কাছে এটি খেয়াল করতে কিছু সময় লাগল:

    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
  <parameters>
    <parameter value="v11.0" />
  </parameters>
</defaultConnectionFactory>

যদি আপনি লোকালডিবি ব্যবহার করেন (নতুন "এসকিউএল এক্সপ্রেস" পছন্দ করুন) তবে এটি ঠিক আছে তবে আপনার যদি সেই নির্দিষ্ট সার্ভারটি ইনস্টল না করে থাকে এবং নিয়মিত এসকিউএল ব্যবহার না করেন তবে সম্পূর্ণ ভুল।

সমাধান: উপরের কোডটি সরান।


0

এসকিউএল সার্ভারের সংযোগ ব্যর্থ হওয়ার কারণ এটি।

নিশ্চিত হয়ে নিন যে আপনি যে ব্যবহারকারীর অ্যাকাউন্টের অধীনে প্রক্রিয়াটি চালাচ্ছেন তার এসকিউএল সার্ভারে অ্যাক্সেস রয়েছে।

যদি আপনি প্যারেন্ট থ্রেড (যেমন নির্ভরতা ইনজেকশন ব্যবহার করে) থেকে DbContext তৈরি করেছেন এবং তারপরে আপনি যদি অন্য কোনও ব্যবহারকারীকে নকল করছেন তবে এই ত্রুটি ঘটবে। সমাধানটি হবে নতুন থ্রেড বা নতুন ছদ্মবেশী প্রসঙ্গের অভ্যন্তরে DbContext তৈরি করা।


0

আমি কেবল ভিজ্যুয়াল স্টুডিওর সমস্ত দৃষ্টান্ত বন্ধ করে দিয়েছি এবং আমার সমাধানটি আবার খুললাম।

আসলে কী ঘটেছে তা আমি জানি না, তবে আমার দুটি ভিন্ন স্থানীয় কর্মক্ষেত্র থেকে একই সমাধানটি খোলা হয়েছিল (আমার স্থানীয় পরিবর্তনগুলির সাথে একটি, অপরিবর্তিত সংগ্রহস্থল উত্স কোড সহ একটি)। আমি পোস্টগ্রিস ডিবি, সত্তা ফ্রেমওয়ার্ক 6, ভিজ্যুয়াল স্টুডিও 2013 এবং এএসপি.নেট এমভিসি 5 এর সাথে কাজ করি।


0

সত্তা কাঠামোর জন্য আমার একটি ত্রুটি ছিল, তবে উপরের উত্তরগুলির মধ্যে কোনওটিই শেষ পর্যন্ত কার্যকর হওয়া সমাধানটির মধ্যে ফিট করে না।

আমার অ্যান্টিটি ফ্রেমওয়ার্ক কোড প্রথম মডেল এবং ডেটা কনটেক্সট আমার ওয়েবএপিআই প্রধান প্রকল্প থেকে পৃথক প্রকল্পে ছিল। কোডিংয়ের লাইনের নীচে আমার সত্তা ফ্রেমওয়ার্ক প্রকল্পটি সূচনা প্রকল্প হিসাবে সেট করা হয়েছিল এবং অতএব আমি যখন একটি মাইগ্রেশন চালাচ্ছিলাম তখন আমি পেয়ে যাচ্ছিলাম "সরবরাহকারী কোনও সরবরাহকারী ম্যানিফেস্টক টোকেন স্ট্রিং ফিরিয়ে দেয়নি" ... সংযোগের সমস্যা।

দেখা যাচ্ছে যে যেহেতু ডিবিতে সংযোগস্ট্রিংটি ওয়েবএপিআই মূল প্রকল্পের ওয়েবকনফিগ ফাইলে অবস্থিত, আমি যখন মাইগ্রেশন চালাচ্ছিলাম তখন সংযোগের স্ট্রিং পুনরুদ্ধার করা হচ্ছিল না। আমার শুরু প্রকল্প হিসাবে ওয়েবএপিআই প্রকল্প সেট করে আমি সফলভাবে সংযোগ করতে সক্ষম হয়েছি able

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.