VS 2012 không thể tải dự án sử dụng IIS với máy chủ liên kết tùy chỉnh - nghĩ rằng nó đang sử dụng IIS Express


85

Tôi có một dự án ASP.NET sử dụng IIS. Trang web IIS được cấu hình để sử dụng tên máy chủ liên kết tùy chỉnh. Tệp dự án chứa các cài đặt sau:

...
<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>
...

Khi dự án được định cấu hình theo cách như vậy, tôi có thể truy cập trang web từ đó http://custom.host.name/và VS tự động gắn vào quy trình công nhân IIS khi gỡ lỗi.

Khi tôi tải lại dự án (bằng cách đóng / mở lại giải pháp hoặc bằng cách dỡ / tải lại trong menu ngữ cảnh của dự án), điều gì đó không mong muốn sẽ xảy ra. Dự án không tải được, (load failed)được hiển thị ở bên phải tên dự án trong trình khám phá giải pháp và hộp thông báo được hiển thị với thông báo sau (nó cũng được hiển thị trong cửa sổ Đầu ra):

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.

Tôi đã thử xóa cấu hình trang web dự án khỏi applicationhost.configtệp IIS Express , nhưng không giúp được gì.

Tôi không gặp sự cố này khi ánh xạ dự án tới Ứng dụng IIS trong trang web mặc định.

Phiên bản VS là Ultimate 2012 Update 3.


3
Vâng, tôi đang gặp vấn đề tương tự với VS2013 vì tôi đã sử dụng IIS Express một lần với dự án này ... Thực sự khó chịu!
kipusoep

3
Thử chỉnh sửa các tệp csproj hoặc csproj.user và đặt UseIISExpressthành false. stackoverflow.com/a/19103452/138938
Jon Crowell

2
@HeadofCatering, tôi vừa gặp sự cố này, nhưng UseIISExpress đã được đặt thành false trong tệp .csproj của dự án. Tuy nhiên, chỉ cần tìm kiếm IIS sẽ khiến tôi tìm thấy thẻ XML "<UseIIS> True </UseIIS>" bên trong tệp csproj (trong <ProjectExtensions><VisualStudio><FlavorProperties> <WebProjectProperties>) và chỉ cần đặt nó thành "< UseIIS> True </UseIIS> "làm cho studio trực quan có thể tải lại dự án. Hy vọng rằng điều này không có bất kỳ tác dụng ngoài ý muốn nào khác!
mgrandi 20/1213

2
@mgrandi Lưu ý lỗi đánh máy; thiết lập <UseIIS>True</UseIIS>để <UseIIS>False</UseIIS>thực hiện thủ thuật cho tôi quá. Cám ơn vì sự gợi ý!
Dion V.

Câu trả lời:


205

Việc mở với tư cách Quản trị viên không khắc phục được sự cố cho tôi. Có gì cố định nó đối với tôi là mở cửa cả các .csproj.csproj.usercác tập tin và đảm bảo rằng cả hai đã UseIISExpressthiết lập để false.

Trong trường hợp của tôi, .csproj.usertệp đã ghi đè .csprojtệp mặc dù SaveServerSettingsInUserFileđã được đánh dấu false.

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

48
Xóa csproj.user cuối cùng đã giải quyết được vấn đề của tôi. Cảm ơn bạn!
Bryan Sumter

Cảm ơn bạn rất nhiều, tôi đã rất đau đầu khi xem qua cài đặt csproj. Mọi thứ đều tốt. Sau khi tôi đã xóa các tập tin csproj.user nó bắt đầu tải dự án mà không bất kỳ khiếu nại ++ 1
Esen

47

Giải pháp là: xóa *.csproj.usertệp!


NHƯNG sau khi xóa *.csproj.user, bạn có thể không có khả năng chỉnh sửa*.csproj
Shuhratjan Nizamov

21

Tôi đã đặt " SaveServerSettingsInUserFile " là True và nó phù hợp với tôi.

<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>

Nguồn: bấm vào đây


4

khi bạn sử dụng, hãy bật tính năng sử dụng cho IISexpress, ứng dụngHost.Config (nằm trong% userprofile% \ iisexpress \ config), bạn phải chọn tùy chọn "Áp dụng cài đặt máy chủ cho tất cả người dùng (lưu trữ trong tệp dự án)" để tránh cài đặt của bạn bị ghi trong yourProject.csproj.user Thiết lập dự án

Làm điều này giống như chỉnh sửa tệp project.csproj của bạn và ghi <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> Nếu bạn bật IISExpress và tệp applicationHost.config của bạn không chứa mục nhập liên quan đến cài đặt dự án của bạn, bạn chỉ cần nhấn nút "Tạo Thư mục Ảo" và hoàn thành !

hi vọng điêu nay co ich


Đây là phiên bản studio trực quan nào? Tôi không có tùy chọn này trong VS Pro 2013
Matt R

@Matt R: Tôi đã nhận VS2012 pro, vì vậy tôi cho rằng phiên bản của bạn cũng vậy. trong trình khám phá giải pháp, chọn dự án web. ứng dụng của bạn, nhấp chuột phải và chọn "thuộc tính" - sau đó một cửa sổ có thẻ xuất hiện, hãy chọn tab "Web" và bạn sẽ thấy ảnh chụp màn hình mà tôi đã đính kèm trong trình giải đáp ... và xin lỗi vì đã trễ câu trả lời!
zobidafly

3

Trong trường hợp của tôi, việc xóa tệp * .csproj.user hoạt động tốt


2

Tôi đã gặp vấn đề tương tự, đối với tôi tất cả những gì tôi phải làm là mở studio trực quan với tư cách là quản trị viên và điều này đã giải quyết vấn đề cho tôi.

rất đơn giản, nhấp chuột phải vào visual studio 2012 và nhấp vào "chạy với tư cách quản trị viên". hi vọng điêu nay co ich


2

Đối với tôi, sự kết hợp của cả hai đều hoạt động cho Visual Studio 2015 Preview với Windows 7 64 bit:
1. xóa tệp * .csproj.user và
2. <UseIISExpress>false</UseIISExpress>trong tệp Giải pháp.
Các bước cho Bước 2: Trong Visual Studio Nhấp chuột phải vào Dự án ==> Tải xuống ===> Chỉnh sửa giải pháp


1

Đủ rồi

Nhận xét dòng này trong tệp dự án x.csproj

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

x.csproj: error: URL ' http: // localhost / x ' cho dự án Web 'x' được định cấu hình để sử dụng IIS Express làm máy chủ web nhưng URL hiện được định cấu hình trên máy chủ web IIS cục bộ. Để mở dự án này, bạn phải sử dụng Trình quản lý IIS để xóa các ràng buộc bằng cách sử dụng URL này khỏi máy chủ web IIS cục bộ.


1

Tôi đã hạ cánh ở đây khi một dự án, được định cấu hình để sử dụng IIS, không tải vì nó không thể tìm thấy trang web (myproject.mycompany.local) - mặc dù trang web tải tốt trong trình duyệt web của tôi.

Giải pháp là đảm bảo ràng buộc của trang web trong IIS 7 có tên máy chủ được đặt thành "myproject.mycompany.local". Để truy cập các ràng buộc trang web của bạn:

  1. Trong IIS 7, chọn trang web trong bảng điều hướng bên trái.
  2. Trong bảng Hành động ở bên phải, nhấp vào Ràng buộc ...

Nếu trang web của bạn cũng không tải trong trình duyệt web, có thể là do bạn không có mục nhập cho nó trong tệp máy chủ của mình:

127.0.0.1    myproject.mycompany.local

1

Nếu dự án của bạn là một phần của giải pháp, hãy mở tệp giải pháp (.sln) và chỉnh sửa phần dự án.

ProjectSection(WebsiteProperties) = preProject
    UseIISExpress = "false"

Nó làm việc cho tôi.


0

Sự cố này đã làm hỏng ngày của tôi trong VS 2013 hôm nay. Tôi đã thử tất cả các cách trên, nhưng không tải được dự án cho đến khi tôi tạo một trang Web trong IIS và điền vào phần này trong tệp .csproj (đặc biệt là phần tử 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>


điều này rất có ý nghĩa. Tôi không thể làm cho điều đó hoạt động mặc dù.
Winnemucca

0

Tôi gặp sự cố tương tự, chạy với tư cách quản trị viên không phù hợp với tôi.

Cài đặt <UseIIS>True</UseIIS> thành false trong tệp ".csproj" của dự án tạm thời có thể tải dự án, nhưng giá trị sẽ trở về True sau khi khởi động lại hoặc đóng giải pháp.

Hoàn thành câu trả lời của @Cyrus (phù hợp với tôi) để có câu trả lời gọn gàng hơn, tôi tập trung hơn vào tệp csproj.user của dự án và tìm ra nguồn gốc chính xác của vấn đề: đặt <UseIISExpress>true</UseIISExpress>thành false, sau đó tải lại dự án. hoạt động tốt mà không cần xóa tệp csproj.user. kết quả là như thế này:

<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>

Cần đề cập rằng, trong trường hợp của tôi mỗi lần tôi mở Visual Studio bình thường (không phải với tư cách quản trị viên), cài đặt IIS sẽ trả về và tôi phải thực hiện lại các tác vụ.
Homa Pourmohammadi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.