it-swarm.dev

VS 2012 لا يمكن تحميل المشروع الذي يستخدم IIS مع مضيف الربط المخصص - يعتقد أنه يستخدم IIS التعبير

لدي مشروع ASP.NET يستخدم IIS. IIS تم تكوين الموقع لاستخدام اسم مضيف ربط مخصص. يحتوي ملف المشروع على الإعدادات التالية:

...
<UseIISExpress>false</UseIISExpress>
...
<ProjectExtensions>
  <VisualStudio>
    <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
      <WebProjectProperties>
        <UseIIS>True</UseIIS>
        <AutoAssignPort>False</AutoAssignPort>
        <DevelopmentServerPort>8662</DevelopmentServerPort>
        <DevelopmentServerVPath>/</DevelopmentServerVPath>
        <IISUrl>http://custom.Host.name/</IISUrl>
        <NTLMAuthentication>False</NTLMAuthentication>
        <UseCustomServer>False</UseCustomServer>
        <CustomServerUrl></CustomServerUrl>
        <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
      </WebProjectProperties>
    </FlavorProperties>
  </VisualStudio>
</ProjectExtensions>
...

عندما يتم تكوين المشروع بهذه الطريقة ، يمكنني الوصول إلى الموقع من http://custom.Host.name/ وإرفاق VS تلقائيًا بـ IIS العملية المنفذة عند تصحيح الأخطاء.

عند إعادة تحميل المشروع (إما عن طريق إغلاق/إعادة فتح الحل أو عن طريق إلغاء التحميل/إعادة التحميل في قائمة سياق المشروع) ، يحدث شيء غير متوقع. فشل تحميل المشروع ، يتم عرض (load failed) على يمين اسم المشروع في حل Explorer ويتم عرض مربع الرسالة بالرسالة التالية (يتم عرضه أيضًا في نافذة الإخراج):

The URL 'http://custom.Host.name/' for Web project 'Some.Asp.Net.Project' 
is configured to use IIS Express as the web server but the URL is currently
configured on the local IIS web server. To open this project, you must use
IIS Manager to remove the bindings using this URL from the local IIS web server.

لقد حاولت إزالة تكوين موقع المشروع من ملف IIS Express applicationhost.config ، لكنه لم يساعد.

لا أواجه هذه المشكلة عند تعيين المشروع إلى IIS التطبيق ضمن الموقع الافتراضي.

الإصدار VS هو Ultimate 2012 Update 3.

82
Igor Antonov

فتح كمسؤول لم يحل المشكلة بالنسبة لي. ما تم إصلاحه بالنسبة لي هو فتح كلا / .csproj وملفات .csproj.user والتأكد من أن كلاهما UseIISExpress مضبوط على false.

في حالتي ، تجاوز ملف .csproj.user ملف .csproj على الرغم من أن SaveServerSettingsInUserFile تم وضع علامة عليه false.

<Project ToolsVersion="12.0" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <UseIISExpress>false</UseIISExpress> 
    <!-- ... -->
</Project>
200
Jonah

الحل هو: حذف ملف *.csproj.user!

46
Cyrus

لقد قمت بتعيين " SaveServerSettingsInUserFile " كما هو صحيح وأنها عملت بالنسبة لي.

<ProjectExtensions>
<VisualStudio>
  <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
    <WebProjectProperties>
      <UseIIS>True</UseIIS>
      <AutoAssignPort>True</AutoAssignPort>
      <DevelopmentServerPort>50584</DevelopmentServerPort>
      <DevelopmentServerVPath>/</DevelopmentServerVPath>
      <IISUrl>http://localhost:50584/</IISUrl>
      <NTLMAuthentication>False</NTLMAuthentication>
      <UseCustomServer>False</UseCustomServer>
      <CustomServerUrl>
      </CustomServerUrl>
      <SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
    </WebProjectProperties>
  </FlavorProperties>
</VisualStudio>

المصدر: انقر هنا

21
Liakat

عند استخدام تمكين استخدام IISexpress ، applicationHost.Config (الموجود في٪ userprofile٪\iisexpress\config) ، يجب عليك تحديد الخيار "تطبيق إعدادات الخادم على جميع المستخدمين (المتجر في ملف المشروع)" لتجنب كتابة إعداداتك في yourProject.csproj.user project settings

القيام بذلك هو نفسه عند تحرير ملف project.csproj وكتابته <WebProjectProperties> <UseIIS>True</UseIIS> <AutoAssignPort>True</AutoAssignPort> <DevelopmentServerPort>62242</DevelopmentServerPort> <DevelopmentServerVPath>/</DevelopmentServerVPath> <IISUrl>http://localhost:8100/Claims/</IISUrl> <OverrideIISAppRootUrl>True</OverrideIISAppRootUrl> <IISAppRootUrl>http://localhost:8100/Claims/</IISAppRootUrl> <NTLMAuthentication>False</NTLMAuthentication> <UseCustomServer>False</UseCustomServer> <CustomServerUrl></CustomServerUrl> <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile> </WebProjectProperties> إذا قمت بتمكين IISExpress ولم يكن ملف applicationHost.config الخاص بك يحتوي على الإدخال المتعلق بإعدادات مشروعك ، فما عليك سوى الضغط على الزر "إنشاء الدليل الظاهري" و فعله!

أتمنى أن يساعدك هذا

4
zobidafly

في حالتي ، تم حذف ملف * .csproj.user بشكل جيد

3
Haddis

كان لدي نفس المشكلة ، بالنسبة لي كل ما كان علي فعله هو فتح برنامج Visual Studio كمسؤول وهذا حل المشكلة بالنسبة لي.

انقر بزر الماوس الأيمن على الاستوديو المرئي 2012 وانقر على "تشغيل كمسؤول". أتمنى أن يساعدك هذا

2
Gautam Beri

بالنسبة لي مزيج من كلا عملت ل Visual Studio 2015 معاينة مع ويندوز 7 64 بت:
(1). حذف ملف * .csproj.user و
(2). <UseIISExpress>false</UseIISExpress> في ملف الحل.
خطوات للخطوة 2: في Visual Studio ، انقر بزر الماوس الأيمن على Project ==> إلغاء التحميل ===> تحرير الحل

2
Sunil Yadav

إذا كان مشروعك جزءًا من الحل ، فافتح ملف الحل (.sln) وقم بتحرير قسم المشروع.

ProjectSection(WebsiteProperties) = preProject
    UseIISExpress = "false"

عملت معي.

1
Mr Nsubuga

لقد وصلت إلى هنا عندما لا يتم تحميل مشروع ، تم تكوينه لاستخدام IIS ، لأنه لم يتمكن من العثور على موقع الويب (myproject.mycompany.local) - على الرغم من أن موقع الويب تم تحميله جيدًا في مستعرض الويب الخاص بي.

كان الحل هو التأكد من أن رابط الموقع في IIS 7 لديه اسم المضيف مضبوط على "myproject.mycompany.local". للوصول إلى روابط موقعك:

  1. في IIS 7 ، حدد الموقع في لوحة التنقل اليمنى.
  2. في لوحة "إجراءات" على اليمين ، انقر فوق روابط ...

إذا لم يتم تحميل موقعك في متصفح الويب أيضًا ، فربما يرجع ذلك إلى عدم وجود إدخال له في ملف المضيفين الخاص بك:

127.0.0.1    myproject.mycompany.local
1
Seth

هذا يكفي

التعليق هذا السطر في ملف المشروع x.csproj

<!--<UseIIS>True</UseIIS>-->

x.csproj: خطأ: تم تكوين عنوان URL ' http: // localhost/x ' لمشروع الويب 'x' لاستخدام IIS Express كخادم ويب ولكن عنوان URL مكوّن حاليًا على خادم الويب المحلي IIS. لفتح هذا المشروع ، يجب عليك استخدام IIS Manager لإزالة الروابط التي تستخدم عنوان URL هذا من خادم الويب IIS المحلي.

1
samar samar

هذه المشكلة كانت تدمر يومي في VS 2013 اليوم. لقد جربت كل ما سبق ، لكن لم أحصل على تحميل المشروع حتى أنشأت موقع ويب في IIS وقمت بملء هذا القسم في ملف .csproj (وخاصة عنصر IISUrl):

<ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
          <AutoAssignPort>True</AutoAssignPort>
          <DevelopmentServerPort>81</DevelopmentServerPort>
          <DevelopmentServerVPath>/</DevelopmentServerVPath>
          <IISUrl>http://localhost/SomeProject</IISUrl>
          <NTLMAuthentication>False</NTLMAuthentication>
          <UseCustomServer>False</UseCustomServer>
          <CustomServerUrl>
          </CustomServerUrl>
          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>
0
Eric Farr

واجهت نفس المشكلة ، حيث لم يعمل المسؤول بالنسبة لي.

يمكن أن يؤدي تعيين <UseIIS>True</UseIIS> إلى خطأ في ملف ".csproj" للمشروع مؤقتًا إلى تحميل المشروع ، ولكن القيمة كانت تعود إلى True بعد إعادة تشغيل الحل أو إغلاقه.

بعد إكمال إجابةCyrus (التي عملت بالنسبة لي) للحصول على إجابة أكثر دقة ، ركزت أكثر على ملف csproj.user الخاص بالمشروع ووجدت المصدر الدقيق للمشكلة: ضبط <UseIISExpress>true</UseIISExpress> على خطأ ، ثم إعادة تحميل المشروع. تعمل بشكل جيد ، دون حذف ملف csproj.user. النتيجة هي مثل هذا:

<Project ToolsVersion="4.0" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectView>ProjectFiles</ProjectView>
    <UseIISExpress>false</UseIISExpress>
    <IISExpressSSLPort />
    <IISExpressAnonymousAuthentication />
    <IISExpressWindowsAuthentication />
    <IISExpressUseClassicPipelineMode />
    <NameOfLastUsedPublishProfile>My Project's Name</NameOfLastUsedPublishProfile>
  </PropertyGroup>
0
Homa Pourmohammadi