c# - ব্যবহারকারীর আইআইএস অ্যাপপুল \ ASP.NET v4.0 এর জন্য লগইন ব্যর্থ হয়েছে



iis-7 web-config (25)

আমার একটি ওয়েব প্রোজেক্ট রয়েছে (সি # এসপি.NET, EF 4, MS SQL 2008 এবং IIS 7) এবং আমাকে স্থানীয়ভাবে আইআইএস 7 তে স্থানান্তরিত করতে হবে (এই মুহূর্তে CASSINI এর সাথে ভাল কাজ করে)।

আইআইএস স্থানীয়ভাবে আমার Default Web Site আমার স্থাপনার সঙ্গে আছে। আমার Default Web Site ডেভেলপমেন্ট হিসাবে পুল টার্গেট ফ্রেমওয়ার্ক 4 পুল এএসপি.NET v4.0 (সেটিংসের জন্য চিত্র দেখুন) উভয় আমার স্থাপনা এবং Default Web Site । সাইটটি পরিদর্শন করার সময়, ব্রাউজার পৃষ্ঠাটি দেখায় না এবং ব্রাউজারটিকে পরিবর্তে পৃষ্ঠাটি ডাউনলোড করার অনুমতি দেয়।

আমি আইআইএস স্থানীয়ভাবে চলমান অন্যান্য প্রকল্প আছে এবং তারা কোন সমস্যা সঙ্গে কাজ করে (কিন্তু তারা অ্যান্টিটি ফ্রেমওয়ার্ক ব্যবহার করবেন না)।

ইভেন্ট লগার ব্যবহার করে আমি নীচের ত্রুটি দেখতে পাচ্ছি:

Exception information: 
    Exception type: EntityException 
    Exception message: The underlying provider failed on Open.
   at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)


    Login failed for user 'IIS APPPOOL\ASP.NET v4.0'.
       at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
       at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
       at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
       at System.Data.SqlClient.SqlConnection.Open()
       at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)

সম্পর্কিত প্রশ্ন

আপডেট: আপনি এই প্রশ্নে সংস্থানগুলিতে পড়তে পারেন যে অনুমতিগুলি অবশ্যই এমএস এসকিউএল ২008-এ তার উত্তরের ব্যাখ্যা হিসাবে ম্যানুয়ালি দেওয়া উচিত। আইআইএস 7.5 এবং এমএস এসকিউএল 2008 R2 ব্যবহার করে, ম্যানুয়ালি অনুমতি সেটিংস প্রয়োজন হবে না।


Answers

ডিফল্টAppPool আইডেন্টিটি প্রোপার্টিতে এবং Sql সার্ভারে নেটওয়ার্ক সার্ভারে ব্যবহারকারী নেটওয়ার্ক পরিষেবা যুক্ত করুন এবং এটি আপনার ডেটাবেসে অ্যাপ্রোপিটাইট অনুমতি দেয়, এটি আমার জন্য খুব ভাল কাজ করে, আমি স্থানীয়ভাবে পরীক্ষা করেছি কিন্তু আমি মনে করি যে এটি যেকোনও থেকে সংযোগ করার জন্য সর্বোত্তম কনফিগারেশন নেটওয়ার্ক অন্যান্য কম্পিউটার। যখন আপনি আইআইএস-এ আইডিতে আইডিয়াসে লোকাল সিস্টেমটি সেট করেন তখন এটি ভাল কাজ করে এবং SQL সার্ভারে অন্য ব্যবহারকারী তৈরি করার প্রয়োজন হয় না তবে মনে হয় এটি নেটওয়ার্ক পরিবেশে কাজ করবে না।


আপনি উইন্ডোজ প্রমাণীকরণ ব্যবহার করছেন কিনা তা পরিষ্কার করার জন্য প্রথম জিনিসটি এবং আপনি আপনার সংযোগ স্ট্রিংয়ে ব্যবহারকারীর পাসওয়ার্ড উল্লেখ করছেন না:

স্থানীয় হোস্টের মাধ্যমে আপনার কোড চালানোর সময় কী হবে: স্থানীয় হোস্ট থেকে আপনার WCF পরীক্ষার ক্লায়েন্ট চালানোর সময়, এটি ডেটাবেসে যোগাযোগ করতে সক্ষম হবে কারণ স্থানীয় ডিবাগ মোড অ্যাপ্লিকেশনটি আপনার অ্যাকাউন্টের পরিষেবা দ্বারা ডেটাবেসকে কল করছে। সুতরাং এটি ডেটাবেসে অ্যাক্সেস আছে কারণ devenv.exe আপনার ব্যবহারকারীর অ্যাকাউন্টের অধীনে চলছে।

কিন্তু যখন আপনি আইআইএসে আপনার ওয়েব পরিষেবা স্থাপন করবেন। এখন এই পরিষেবাটি আপনার অ্যাকাউন্টের অধীনে আইআইএসের অধীনে চলবে না বুঝে নিন। উইন্ডোজ প্রমাণীকরণের জন্য SQL সার্ভারটি অ্যাক্সেস করতে আপনাকে আইআইএস পরিষেবাদির অ্যাক্সেস অধিকার বরাদ্দ করতে হবে। এখানে আপনার ওয়েব পরিষেবা অ্যাক্সেস অধিকার সমস্যা এবং ব্যবহারকারীর জন্য লগইন ব্যর্থ হওয়ার কারণে SQL সার্ভারে যোগাযোগ করতে সক্ষম হবে না ____ (এখানে আপনার ব্যবহারকারী আসবে)

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

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

এখন আপনার এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও খুলুন: খুলুন রান-> তারপর ssms টাইপ করুন এবং ssms এ ঠিক টিপুন, আপনার উইন্ডোজ প্রমাণীকরণ অ্যাকাউন্ট ব্যবহার করে লগইন করুন। খোলা নিরাপত্তা ট্যাব লগইন ট্যাব প্রসারিত করুন তারপর আপনি আপনার অ্যাকাউন্ট দেখতে সক্ষম হবে।

এখন আপনার অ্যাকাউন্টের খোলা বৈশিষ্ট্যগুলি ব্যবহারকারী ম্যাপিং এ যান এবং তারপর যে ডেটাবেসটি আপনি সংযুক্ত করতে চান তা নির্বাচন করুন তারপর নির্বাচিত ডাটাবেসের জন্য আপনি যে ভূমিকা সদস্যতা ব্যবহার করতে চান তা পরীক্ষা করুন ঠিক আছে ক্লিক করুন। (নেটওয়ার্ক পরিষেবাদি যেমন ইন্ট্রানেট ব্যবহারকারীদের জন্য আপনাকে এনটি AUTHORITY \ SYSTEM ব্যবহারকারীর জন্য সেটিংস কনফিগার করতে হবে)

Trusted_Connection = সত্য যোগ করুন; আপনার সংযোগ স্ট্রিং সম্পত্তি। এটি সংরক্ষণ করুন এবং ওয়েব সেবা স্থাপন। অ্যাপ্লিকেশন পুল পুনরায় আরম্ভ করুন।

আপনি এখন ডাটাবেস সংযোগ করতে সক্ষম হবে।


আপনি কি @Teddy প্রস্তাবিত করেছেন এবং আপনি এখনও একই ত্রুটি পাবেন?

আপনি আপনার ভার্চুয়াল ডিরেক্টরি অনুসারে এবং প্যারেন্ট সার্ভারের সাথে সম্পর্কিত অ্যাপ পুলের জন্য সেটিংস পরিবর্তন করছেন তা নিশ্চিত করুন। প্রতিটি ভার্চুয়াল ডিরেক্টরি তার নিজস্ব AppPool আছে এবং উত্তরাধিকারী না।


আমি ASP.NET ওয়েব এপিআই পরীক্ষা একই সমস্যা মধ্যে দৌড়ে

ভিসুয়াল স্টুডিও ২013 এক্সপ্রেস ডেটাবেস তৈরি হয়েছে এসকিউএল সার্ভার ২01২ এক্সপ্রেস ডেটাবেসে নির্মিত আইআইএস এক্সপ্রেস (কাজ করা) এ নির্মিত আইআইএস এক্সপ্রেস ব্যবহার করে এক্সিকিউটেড পরীক্ষা আইআইএস স্থানীয় (প্রোপার্টি পেইজ থেকে - ওয়েব বিকল্প থেকে) ফিডলারের সাথে রান পরীক্ষা ত্রুটি পেয়েছে - ডাটাবেস খুলতে অক্ষম প্রদানকারীর জন্য .... APPPOOL \ DefaultAppPool উদ্ধৃত করা হচ্ছে

সমাধান যে কাজ।

আইআইএস ইন

অ্যাপ্লিকেশন পুলের উপর ক্লিক করুন 'DefaultAppPool' সেট সনাক্ত করুন = 'অ্যাপ্লিকেশনপুলআইডেন্টিটি' সেট করুন .NET ফ্রেমওয়ার্ক = v4.0 (যদিও আমার অ্যাপ্লিকেশন 4.5 ছিল)

এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিওতে

সিকিউরিটি ফোল্ডারে রাইট ক্লিক করুন (এসকিউএল সার্ভার ইঞ্জিনের অধীনে সমস্ত সারণিতে প্রযোজ্য) ব্যবহারকারীর উপর ডান ক্লিক করুন এবং 'আইআইএস অ্যাপপুল \ ডিফল্ট অ্যাপল' যোগ করুন 'গ্রান্ট' কলামে সিকিউরিবলগুলিতে আপনি যে বিকল্পগুলি দিতে চান তা পরীক্ষা করুন। আপনি যদি একটি DBA হন তবে উপরের দিকের বিষয়ে আপনি সম্ভবত জানেন এবং সেগুলি কী নিয়ন্ত্রণ করতে চান তা নিয়ন্ত্রণ করতে চান। আপনি যদি আমার মতো একজন বিকাশকারী আপনার ওয়েব এপিআই পরিষেবাটি পরীক্ষা করতে চান তবে এমভিসি স্টাইলে EF 6 এর মাধ্যমে এসকিউএল সার্ভার অ্যাক্সেস করতেও হবে তবে কেবল সবকিছুই চেক করুন। :) হ্যাঁ আমি জানি কিন্তু এটি কাজ করে।


সংযোগ স্ট্রিং যদি আপনি উল্লেখ করেছেন:

User ID=xxx;Password=yyy

কিন্তু সংযোগ স্ট্রিং আছে:

Trusted_Connection=true;

SQL সার্ভার উইন্ডোজ প্রমাণীকরণ ব্যবহার করবে, তাই আপনার সংযোগের মানগুলি উপেক্ষা করা হবে এবং ওভাররাইড করা হবে (আইআইএস আইডেন্টিটি ব্যবহারকারী প্রোফাইলে নির্দিষ্ট উইন্ডোজ অ্যাকাউন্ট ব্যবহার করবে)। এখানে আরো তথ্য

সংযোগ স্ট্রিং মধ্যে যদি একই প্রযোজ্য হয়:

 Integrated Security = true;

অথবা

 Integrated Security = SSPI;

কারণ উইন্ডোজ প্রমাণীকরণ ডাটাবেস সার্ভারের সাথে সংযোগ করার জন্য ব্যবহার করা হবে। এখানে আরো তথ্য


চিন্তিত আমি এই প্রশ্নের উত্তর হিসাবে এটি পোস্ট হিসাবে পোস্ট করব এবং কিছু ক্ষেত্রে এটি উত্তর দিতে পারেন।

ডাটাবেস উপস্থিত না থাকলে একই বার্তা প্রদর্শিত হবে !

আপনার সংযোগ স্ট্রিংটি কোন ভুল বানান আছে কিনা তা নিশ্চিত করুন, ডান সার্ভার উদাহরণটি নির্দেশ করছে, ইত্যাদি।


আমার এই বার্তা ছিল এবং আমি ওয়েব সার্ভারে উইন্ডোজ প্রমাণীকরণ ব্যবহার করি।

আমি বর্তমানে পুল অনুমোদিত আইআইপি APPPOOL \ ASP.NET v4 ব্যবহারকারী অ্যাপ্লিকেশন পুল মধ্যে নির্দিষ্ট করার পরিবর্তে ডাটাবেসের বিরুদ্ধে প্রমাণিত করা অনুমোদিত ওয়েব ব্যবহারকারী চেয়েছিলেন।

আমি ওয়েব.config নিম্নলিখিত নিম্নলিখিত লিখে আমার জন্য এই সংশোধন:

<system.web>
  <identity impersonate="true" />
</system.web>

https://msdn.microsoft.com/en-us/library/bsz5788z.aspx

আমি এসকিউএল ডিবিতে অ্যাপপুল ইউজারনেম তৈরির জন্য বা শুধু এসকিউএল Auth ব্যবহার করার জন্য অন্যান্য উত্তর দেখতে পাচ্ছি। আপনি SQL এর ভিতরে পৃথক উইন্ডোজ ব্যবহারকারীদের ক্যাপচার বা নিরাপদ করতে না চাইলে উভয়ই সঠিক হবে।

টম


আমি ApplicationPoolIdentity ঘৃণা করি। আমি সবসময় অ্যাপপুলে অ্যাকাউন্ট হিসাবে উইন্ডোজ ইউজার একাউন্ট সেট করি।

Adrift বলেছেন, এটি একটি ডাটাবেস নিরাপত্তা সমস্যা মত শব্দ না। সুতরাং একটি এনটি ব্যবহারকারীর অ্যাকাউন্ট তৈরি করুন, এটি এএসপি.NET v4.0 AppPool এ বরাদ্দ করুন এবং তারপরে এটি ওয়েবসাইট ফোল্ডারে এবং SQL তে প্রাসঙ্গিক টেবিলে (গুলি) অনুমতি দিন।


আপনার ওয়েব কনফিগারেশনে আপনার সংযোগ স্ট্রিং যুক্ত থাকলে, "নিশ্চিত সুরক্ষা = মিথ্যা" নিশ্চিত করুন। তাই এটি web.config এ নির্দিষ্ট আইডি এবং পাসওয়ার্ড ব্যবহার করবে।

<connectionStrings>
    <add providerName="System.Data.SqlClient" name="MyDbContext" connectionString="Data Source=localhost,1433;Initial Catalog=MyDatabase;user id=MyUserName;Password=MyPassword;Trusted_Connection=true;Integrated Security=false;" />
</connectionStrings>

যখন আপনি ভিসুয়াল স্টুডিও অ্যাপ্লিকেশন শুরু করেন তখন ক্যাসিনি আপনার নিজের ব্যবহারকারী পরিচয় হিসাবে আপনার ওয়েবসাইট পরিচালনা করে। আইআইএস একটি অ্যাপ্লিকেশন পুল আইডেন্টিটি হিসাবে আপনার ওয়েবসাইট চালায়। অ্যাপ পুল আইডেন্টিটি ডেটাবেসে অ্যাক্সেস প্রদান না করা পর্যন্ত, আপনি ত্রুটি পাবেন।

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

নেটওয়ার্কযুক্ত পরিস্থিতিতে (যে Azure তে নেই) আপনি অ্যাক্টিভ ডিরেক্টরি ডোমেন ব্যবহারকারীর অ্যাকাউন্টের অধীনে একটি নতুন অ্যাপ পুল চালাতে পারেন; আমি মেশিন অ্যাকাউন্ট উপর এই পছন্দ। এটি করার ফলে ডেটাবেস সহ নেটওয়ার্ক রিসোর্সগুলিতে ঘনক্ষেত্র সুরক্ষা এবং দারুণ অ্যাক্সেস দেয়। প্রতিটি ওয়েবসাইট একটি ভিন্ন অ্যাপ পুলে রান করে (এবং প্রত্যেকে নিজের ডোমেন ব্যবহারকারীর অ্যাকাউন্টের অধীনে চালায়)।

সব সংযোগ স্ট্রিং উইন্ডোজ ইন্টিগ্রেটেড সিকিউরিটি ব্যবহার চালিয়ে যান। এসকিউএল সার্ভারে, ডোমেন ব্যবহারকারীদের লগইন হিসাবে যোগ করুন এবং ডেটাবেস, টেবিল, এসপি ইত্যাদি অনুমতি প্রদানের ভিত্তিতে প্রতি ওয়েবসাইট ভিত্তিতে। যেমন ওয়েবসাইট 1 দ্বারা ব্যবহৃত DB1 ব্যবহারকারীর 1 এর জন্য লগইন করেছে কারণ Website1 ব্যবহারকারীর হিসাবে একটি অ্যাপ্লিকেশন পুলে রান করে।

ভিজ্যুয়াল স্টুডিও অন্তর্নির্মিত ডিবি (যেমন LocalDB) এবং বিল্ট-ইন ওয়েব সার্ভারের উত্পাদনের পরিবেশে ডেভেলপারের ব্যবহারকারী সিআইডি এবং এটির ACLs নিরাপদ উত্পাদন পরিবেশে ব্যবহার করা হয় না তা থেকে উদ্ভূত হয়। মাইক্রোসফ্ট স্থাপনার জন্য সরঞ্জাম প্রদান করে। কিন্তু স্থানীয় ডেবি এবং স্থানীয় ওয়েবসার্ভারের সাথে সহজেই নতুন সহজ ভিএস আইডিই বক্সে কাজ করে এমন সব দরিদ্র বিকাশকারীকে দয়া করুন, কারণ এই সরঞ্জামগুলি বিশেষভাবে সেই ডেভেলপারের জন্য ব্যবহার করা কঠিন হবে, বিশেষ করে যেমন SysAdmin এবং DBAdmin সমর্থনের অভাবকারীর জন্য। তাদের বিশেষ জ্ঞান। তবুও উপরে বর্ণিত এন্টারপ্রাইজ নেটওয়ার্ক পরিস্থিতি থেকে Azure তে স্থাপন করা সহজ।


হিসাবে নির্দেশিত, উইন্ডোজ প্রমাণীকরণ ব্যবহার করবেন না, এসকিউএল সার্ভার প্রমাণীকরণ ব্যবহার করুন

এছাড়াও যদি আপনি "সার্ভার সংযোগ" কথোপকথন ব্যবহার করে সংযোগ তৈরি করেন তবে ওয়েব.config এ সংযোগগুলি পরীক্ষা করে দেখুন। এটি সম্ভবত আপনি তৈরি / সংশোধিত সংযোগ এবং এটি ওয়েব.config এ বিশ্বস্ত সংযোগ হিসাবে সংরক্ষণ করা হয়েছে। শুধু এই প্রমাণীকরণ ব্যবহার করুন

<add name="MyDBConnectionString" connectionString="Data Source=localhost;Initial Catalog=Finantial;User ID=xxx;Password=xxx" providerName="System.Data.SqlClient"/>

যা ত্রুটি ঠিক করা উচিত।


Asp.net ওয়েব ফর্ম ইন,

এপিএনটি ইনস্টল করার সময় এই ত্রুটি সংশোধন করা হয়েছে:

সার্ভার ম্যানেজার> পরিচালনা> ভূমিকা এবং বৈশিষ্ট্য> সার্ভার ভূমিকা> ওয়েব সার্ভার (আইআইএস)> ওয়েব সার্ভার> অ্যাপ্লিকেশন ডেভেলপমেন্ট> ASP.NET 3.5 / 4.6 ইনস্টল করা হয়েছে।

আমার সমস্যা সংশোধন করা হয়েছে।


আমি এসকিউএল সার্ভার প্রোফাইলার (এসএসএমএস => টুলস মেনুতে উপলব্ধ) ব্যবহার করেছি এবং সেখানে দেখেছি (যখন আইআইএস ডাটাবেসের সাথে সংযোগ করার চেষ্টা করেছিল) যে আমার আইআইএস ব্যবহারকারী এনটি AUTHORITY \ IUSR এর জন্য কিছু কারণে ছিল, এই প্রশ্নের উত্তরে সুপারিশকৃত সমস্ত পদক্ষেপের কোন ব্যাপার নেই । তাই আমি সেই ব্যবহারকারীকে এসকিউএল সার্ভারে যুক্ত করেছি, এবং এটি কাজ করেছে ...


আপনি আইআইএস 7 থেকে অ্যাপ্লিকেশনপুল আইডেন্টিটি পরিবর্তন করতে পারেন -> অ্যাপ্লিকেশন পুল -> উন্নত সেটিংস।

ApplicationPoolIdentity অধীনে আপনি স্থানীয় সিস্টেম পাবেন। এটি আপনার অ্যাপ্লিকেশনটি NT AUTHORITY\SYSTEM অধীনে চলবে, যা ডিফল্টরূপে ডাটাবেসের জন্য একটি বিদ্যমান লগইন।

সম্পাদনা: এই পরামর্শটি প্রয়োগ করার আগে আপনাকে অবশ্যই সুরক্ষিত প্রভাবগুলি মনে রাখবেন এবং বুঝবেন।


রেকর্ডের জন্য, যদি আপনি LocalDB থেকে LocalDB স্যুইচ করার পরে এই ত্রুটিটি SQLEXPRESS , তবে নিশ্চিত করুন যে ডাটাবেস ইতিমধ্যে SQLEXPRESS এ SQLEXPRESS । আপনি ম্যানেজমেন্ট স্টুডিওতে এই যাচাই করতে পারেন।

SQLEXPRESS from LocalDB স্যুইচ করার পরে Entity Framework ব্যবহার করার সময় SQLEXPRESS from LocalDB একই সমস্যা ছিল। আমি Update-Database কমান্ড চালানো ছিল। আমি সফলভাবে যে পরে সংযোগ করতে সক্ষম হয়েছিল।


পরিচয় সেট করা শুধুমাত্র আমার পেজে এই কাজ করে তোলে।


দেখে মনে হচ্ছে SQL সার্ভারে একটি সংযোগ খুলতে ব্যর্থ হচ্ছে।

আপনাকে IIS APPPOOL\ASP.NET v4.0 জন্য SQL সার্ভারে লগইন যুক্ত করতে হবে এবং ডাটাবেসের অনুমতি প্রদান করতে হবে।

এসএসএমএসে, সার্ভারের অধীনে, নিরাপত্তা প্রসারিত করুন, তারপরে লগইন ক্লিক করুন এবং "নতুন লগইন ..." নির্বাচন করুন।

নতুন লগইন ডায়ালগে লগ ইন নাম হিসাবে অ্যাপ্লিকেশন পুলটি প্রবেশ করান এবং "ওকে" ক্লিক করুন।

আপনি তারপর অ্যাপ্লিকেশন পুলের জন্য লগইনটি ডান-ক্লিক করতে পারেন, বৈশিষ্ট্য নির্বাচন করুন এবং "ব্যবহারকারী ম্যাপিং" নির্বাচন করুন। উপযুক্ত ডাটাবেস, এবং যথাযথ ভূমিকা পরীক্ষা করে দেখুন। আমার মনে হয় আপনি কেবলমাত্র db_datareader এবং db_datawriter নির্বাচন করতে পারেন তবে আমি মনে করি যে আপনি যদি EF এর মাধ্যমে এটি সংরক্ষণ করার পদ্ধতিগুলি সঞ্চিত করার জন্য এখনও অনুমতি প্রদান করতে চান। আপনি here ভূমিকা জন্য বিবরণ চেক করতে পারেন।


আইআইএস এ যান -> অ্যাপ্লিকেশন পুল -> অ্যাপ্লিকেশন ব্যবহার আপনার অ্যাপ্লিকেশন পুল খুঁজুন

অ্যাপ্লিকেশন জন্য ব্যবহার আপনার অ্যাপ্লিকেশন পুল ডান নির্বাচন করুন উন্নত সেটিংস নির্বাচন করুন

আবেদন পুল পরিচয় নির্বাচন করুন

স্থানীয় সিস্টেম হিসাবে নির্মিত নির্বাচন করুন এবং ঠিক আছে ক্লিক করুন


নিরাপত্তা অধীনে "সবাই" যোগ করুন। যদি আপনি সার্ভারে এবং ব্যবহারকারীদের ডাটাবেসটিতে লগ ইন করে থাকেন তবে এইটি আপনি অনুপস্থিত। আশাকরি এটা সাহায্য করবে.


ব্যবহারকারী IIS APPPOOL\ASP.NET v4.0 জন্য ডাটাবেসের অনুমতি দেওয়ার আরেকটি উপায় নিম্নরূপ।


  1. আপনার ডিফল্ট স্কিম সহ IIS APPPOOL\ASP.NET v4.0 হিসাবে ব্যবহারকারীর নাম এবং লগইন নাম সহ নতুন ব্যবহারকারী যুক্ত করুন।
  2. মালিক স্কিমা এবং সদস্যতা যান, db_datareader, db_datawriter চেক করুন

এই এসকিউএল স্ক্রিপ্ট চালান

IF NOT EXISTS (SELECT name FROM sys.server_principals WHERE name = 'IIS APPPOOL\DefaultAppPool')
BEGIN
    CREATE LOGIN [IIS APPPOOL\DefaultAppPool] 
      FROM WINDOWS WITH DEFAULT_DATABASE=[master], 
      DEFAULT_LANGUAGE=[us_english]
END
GO
CREATE USER [WebDatabaseUser] 
  FOR LOGIN [IIS APPPOOL\DefaultAppPool]
GO
EXEC sp_addrolemember 'db_owner', 'WebDatabaseUser'
GO

আমি নিম্নলিখিত ইমেজ হিসাবে SQL ব্যবহার করে এই সমস্যা সমাধান।

ডাব-> বৈশিষ্ট্যাবলী-> অনুমতি -> অনুমতি -> সার্ভারের অনুমতি দেখুন -> এবং তারপরে IIS APPPOOL\ASP.NET v4.0 এবং অনুদান অনুমতিটি নির্বাচন করুন।


আমি আইআইএস এপ্লিকেশন হোস্ট করার সময় একই সমস্যা সম্মুখীন হয়েছে

সমাধান

আমি পুল আইডেন্টিটি পরিবর্তন করেছি এবং এর কাজটা আমার

ApplicationPoolIdentity -> NetworkService

ইন্টিগ্রেটেড সিকিউরিটি ব্যবহার করবেন না। User Id=yourUser; pwd=yourPwd; আপনার User Id=yourUser; pwd=yourPwd; ব্যবহার করুন User Id=yourUser; pwd=yourPwd; User Id=yourUser; pwd=yourPwd;

এই সমস্যা সমাধান করে।


এই উদাহরণটি যোগ করা হয়েছে যে সমস্ত হ্যান্ডলারদের প্রতিনিধিদের পুনরুদ্ধার করার পদ্ধতি GetInvocationList () পদ্ধতিটি কীভাবে ব্যবহার করবেন তা দেখায়। যদি আপনি দেখতে চান কোন নির্দিষ্ট হ্যান্ডলার (ফাংশন) যুক্ত করা হয়েছে তবে আপনি অ্যারে ব্যবহার করতে পারেন।

public class MyClass
{
  event Action MyEvent;
}

...

MyClass myClass = new MyClass();
myClass.MyEvent += SomeFunction;

...

Action[] handlers = myClass.MyEvent.GetInvocationList(); //this will be an array of 1 in this example

Console.WriteLine(handlers[0].Method.Name);//prints the name of the method

একটি নির্দিষ্ট ফাংশন যোগ করা হয়েছে কিনা তা দেখতে আপনি প্রতিনিধির মেথড সম্পত্তি সম্পর্কিত বিভিন্ন বৈশিষ্ট্য পরীক্ষা করতে পারেন।

যদি আপনি কেবল একটি সংযুক্ত থাকে কিনা তা দেখতে চান তবে আপনি কেবল নিল জন্য পরীক্ষা করতে পারেন।





c# asp.net iis-7 web-config