Dự án ứng dụng web [Hoài] được cấu hình để sử dụng IIS. Không thể tìm thấy máy chủ Web [Hoài].


285

Tôi có một dự án web trong tệp giải pháp của mình "không khả dụng" khi tôi mở giải pháp. Khi tôi nhấp chuột phải vào dự án web và tải lại dự án, tôi gặp lỗi sau:

The Web Application Project mycompany.myapp.mywebproject is configured to use IIS. The Web Server 'http://localhost/MyWebApp could not be found.

Tôi chưa tự thiết lập thư mục ảo cho ứng dụng web này.

Theo đồng nghiệp, Visual Studio sẽ nhắc tôi tạo thư mục ảo nhưng tôi không được nhắc.

Tôi đã cài đặt VS2010 trước khi cài đặt IIS trên máy dev của mình.

Đây là thiết lập máy phát triển của tôi:

  • Doanh nghiệp Windows 7
  • Gói dịch vụ 1
  • HĐH 64 bit
  • Gói dịch vụ doanh nghiệp Visual Studio 2010 1
  • IIS phiên bản 7.5

Câu trả lời:


87

Khi điều này xảy ra, giải pháp đơn giản nhất là tạo thư mục ảo theo cách thủ công.

Trước hết, bạn cần đảm bảo rằng bạn đã cài đặt đúng phiên bản ASP.Net và bạn đã cài đặt các phần mở rộng IIS.

Để thực hiện việc này, hãy chuyển đến thư mục của phiên bản .net có liên quan trong C: \ (Windows) \ Microsoft.NET \ Framework \ (dotnetver) \ (thay thế các thư mục được đặt trong ngoặc cho các thư mục bên phải trên PC của bạn) và chạy lệnh này

aspnet_regiis.exe -i

Tiếp theo một khi đó là chạy và kết thúc, đôi khi chạy

iisreset

từ dòng lệnh giúp, đôi khi bạn không cần.

Tiếp theo, đi đến Trình quản lý IIS của bạn và tìm trang web localhost của bạn và chọn thêm một thư mục. Duyệt đến thư mục trong dự án của bạn có chứa dự án ASP.Net thực tế và thêm vào đó.

Cuối cùng, nhấp chuột phải vào thư mục bạn đã thêm và bạn sẽ có tùy chọn 'chuyển đổi sang ứng dụng' hoặc 'tạo thư mục ảo' hoặc một cái gì đó tương tự.

!! Hãy chắc chắn rằng thư mục ảo có tên 'MyWebApp' !!

Tải lại giải pháp của bạn và nó sẽ hoạt động.

Xin hãy cảnh giác; đây không phải là một câu hỏi lập trình (và thực sự không nên đăng ở đây) nhưng tôi đã đăng hướng dẫn này vì đây là một vấn đề phổ biến, nhưng lời khuyên tôi đã đăng là chung chung; các lệnh tôi đã liệt kê là chính xác nhưng các bước bạn cần thực hiện trong IIS có thể khác nhau, tùy thuộc vào phiên bản và đặc quyền tài khoản của bạn.

Chúc may mắn!


Tôi đã làm theo chỉ dẫn và nhận được lỗi sau .. Tôi đã xóa thư mục ảo của mình vì lỗi này để bắt đầu. Không thể thêm mục nhập bộ sưu tập trùng lặp của loại 'thêm' với tên thuộc tính khóa duy nhất 'được đặt thành' Telerik_Web_UI_WebResource_axd '
học viên dotnet

Điều gì mang lại lỗi đó, IIS hoặc Visual Studio khi bạn bắt đầu giải pháp?
Russ Clarke

Ngoài ra, hãy kiểm tra web.config cho dự án asp.net mới của bạn, nó có hai hoặc nhiều tham chiếu đến 'Telerik.WebResource.axd' nó chỉ cần một.
Russ Clarke

Tôi đã kiểm tra web.config .. khi tôi xóa mục vi phạm thì tôi nhận được thông báo lỗi rằng mục bị xóa là cần thiết.
học viên dotnet

sắp sửa đăng một câu hỏi riêng cho thông báo lỗi mới
học viên dotnet

523

Vì câu trả lời được chấp nhận yêu cầu Trình quản lý IIS và IIS Express không có Trình quản lý IIS hoặc bất kỳ giao diện người dùng nào, đây là giải pháp cho người dùng IIS Express của bạn (và cũng nên hoạt động cho mọi người khác):

Khi bạn mở Visual Studio và nhận được thông báo lỗi, bấm chuột phải vào Project Explorer dự án và chọn "Chỉnh sửa {ProjectName} .csproj"

Trong tệp dự án, thay đổi dòng sau:
<UseIIS>True</UseIIS>
để
<UseIIS>False</UseIIS>
Lưu tệp.

Bây giờ tải lại dự án của bạn.
Làm xong.

Sau đó bạn sẽ có thể mở dự án của bạn. Nếu tại thời điểm này, bạn muốn sử dụng IIS, chỉ cần vào thuộc tính dự án của bạn, nhấp vào tab "Web" và chọn tùy chọn để sử dụng IIS. Có nút ở đó để "Tạo thư mục ảo". Nó có thể cho bạn biết rằng bạn cần chạy Visual Studio với tư cách quản trị viên để tạo thư mục đó, vì vậy hãy làm điều đó nếu cần.


33
trong VS2010 UseIIS không có trong tệp csproj, nhưng trong tệp
.csproj.user

2
Trong trường hợp của tôi, tôi vẫn muốn sử dụng IIS vì vậy tôi chỉ cần thay đổi URL, hoạt động hoàn hảo nhờ.
kjetilh

Tôi gặp vấn đề này khi nâng cấp và di chuyển. Điều này làm việc cho tôi mặc dù vì giải pháp không tải nên tôi chỉ mở csproj trong trình soạn thảo văn bản. Cảm ơn Doug.
Kieran

2
Đây là câu trả lời chính xác. Dự án được cấu hình để sử dụng cả IIS và IISExpress cùng một lúc.
Aaron Reed

2
Sử dụng VS2013, tôi không thấy Chỉnh sửa {ProjectName} .csproj khi nhấp chuột phải vào giải pháp. Tôi đã hoàn thành chỉnh sửa bằng cách vào hệ thống tệp và chỉnh sửa thủ công tệp .csproj. Nó chỉ đọc, vì vậy tôi phải nhảy một chút, nhưng nó đã hoạt động.
Al Lelopath

222

Mở thư mục dự án và xóa {Project} .csproj.user , sau đó tải lại dự án trên Visual Studio.


2
Tôi là người duy nhất trong nhóm chúng tôi gặp lỗi IIS này. Nhóm nhà phát triển mà tôi làm việc có cùng tệp .csproj từ kiểm soát nguồn nên các giải pháp khác ở trên không phải là vấn đề của tôi. Hóa ra tệp .csproj.user mà bạn đề cập đã gây ra lỗi này trong tình huống của tôi. Cảm ơn!
Ngăn xếp của tôi tràn vào

3
Điều này làm việc cho tôi sau khi thử hầu hết mọi thứ khác
David

3
Đây là câu trả lời chính xác. Nó giải quyết vấn đề với cấu hình của dự án trên máy của bạn (đặc biệt quan trọng khi làm việc với TFS).
Markus

1
Đây cũng là giải pháp nếu bạn đã đặt thẻ iisurl tùy chỉnh nhưng dự án vẫn bắt đầu trên máy chủ cục bộ <IISUrl> MachineName.domain: 12345 / </ IISUrl >
lsp

5
Cái này làm việc cho tôi Không có cài đặt <UseIIS> trong trường hợp của tôi.
Techgration

33

Giải pháp này hiệu quả với tôi: Nhấp chuột phải vào Dự án và chọn chỉnh sửa và tìm mã sau đây như trong hình.

change the <UseIIS>True</UseIIS> to <UseIIS>False</UseIIS>

HOẶC LÀ

change the <IISUrl>http://example.com/</IISUrl> to <IISUrl>http://localhost/</IISUrl>

ảnh chụp màn hình csproj


30

Đối với tôi, tôi đã phải xóa hai dòng này khỏi tệp .csproj

<ProjectGuid>{3AA499DF-4A65-43B7-8965-D08A4C811834}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

Tôi đã cố gắng chỉ xóa cái đầu tiên, nhưng nó không đủ.

EDIT: Như nhiều người dùng đã chỉ ra, điều này có thể thay đổi loại dự án của bạn hoặc gây rối với chương trình kiểm soát nguồn của bạn. Tôi không thể điều tra những vấn đề này vì đây là một dự án trường học mà tôi không còn nữa. Hãy cẩn thận khi thử điều này. Ít nhất là tạo một bản sao của những gì bạn xóa.


9
Điều này đã làm việc và điều này nên được đánh dấu là một câu trả lời. Tôi đã thử nhiều giải pháp như được đề xuất trong SO nhưng không có giải pháp nào phù hợp với tôi ngoại trừ giải pháp này.
Bose_geek

3
Sau khi thử tất cả các gợi ý ở trên, đây là một trong những thực sự làm việc cho tôi. Cảm ơn anh bạn của tôi!
Quý tộc man rợ

2
Điều này thay đổi thành loại dự án để nó không còn là một ứng dụng web nữa.
Oram

3
Không nên xóa <ProjectGuid> khỏi tệp .csproj. Để tải dự án, chỉ cần loại bỏ <ProjectTypeGuids>, đây cũng là một ý tưởng tồi vì nó thay đổi loại dự án, như @Oram đã đề cập. Câu trả lời này là tốt nếu bạn không muốn thực hiện các thay đổi của mình, chỉ cần xem mã trong VS.
elshev

1
Điều này đã giải quyết các lỗi tải thám hiểm giải pháp mà tôi gặp phải với một nhà thầu đã phát triển giải pháp Visual Studio 2010 mà tôi đang chuyển sang năm 2013. Tệp giải pháp có 2 dự án; một ứng dụng web và một dịch vụ web. Tôi không thể tải, vì vậy Solution Explorer chỉ hiển thị hai thư mục trống sau khi tôi cố mở tệp giải pháp. Khi tôi nhận xét các dòng ProjectGuid và ProjectTypeGuids được đề xuất, sau đó tôi có thể thấy các phụ thuộc của các dự án này trong Solution Explorer. Đối với tôi, đây là một lựa chọn lợi nhuận cao có rủi ro thấp vì tôi có thể dễ dàng hoàn tác những thay đổi này. Cảm ơn!
JohnH

26

Chỉnh sửa tệp .csproj hoặc vbproj. Tìm và thay thế các mục này

<UseIIS>true</UseIIS> by <UseIIS>false</UseIIS>
<UseIISExpress>true</UseIISExpress> by <UseIISExpress>false</UseIISExpress>

1
Tôi cũng đã phải thay đổi DevelopmentServerPort thành một giá trị khác ngoài 80.
JoshNaro

1
Và nếu bạn không thể tìm thấy các cài đặt trong tệp csproj. Mở tệp .csproj.user và làm điều đó ở đó.
devzero

10

Trong trường hợp của tôi, vấn đề này là do liên kết IIS bị hỏng. Cụ thể, ràng buộc 'http' của tôi đã bị xóa. Tái tạo nó đã khắc phục vấn đề.


Tôi đã trải qua một vấn đề rất giống nhau. Liên kết HTTP của tôi dường như tự đổi tên một ngày -_- Cài đặt tệp dự án <IISUrl>không thay đổi (cảm ơn SVN vì đã xác nhận bộ nhớ và sự tỉnh táo của tôi) nhưng bằng cách nào đó, ràng buộc iis đã có. Đã sửa nó và tải dự kiến ​​ngay lập tức.
Patrick M

Ngoài ra, hãy nhớ kiểm tra xem bạn đã thay đổi tên sni / hostname của trang đích vì một số lý do. Điều này gây ra lỗi trong trường hợp của tôi.
juarola 6/2/2015

5

Hãy thử mở Visual Studio với các đặc quyền của Quản trị viên. Trong trường hợp của tôi, nó đã cấp quyền truy cập vào trang IIS và khiến lỗi này biến mất. Sau đó tôi đã có thể chuyển đổi dự án để sử dụng IIS Express mà dường như không cần đặc quyền của quản trị viên.


5

Điều này làm việc cho tôi: -
Làm cho tất cả các trang web IIS của bạn trỏ đến localhost (Tất cả chưa được gán)

nhập mô tả hình ảnh ở đây


5

Nếu bạn được kết nối qua TFS, hãy mở tệp project.csproj.user của bạn và kiểm tra

<UseIISExpress>false</UseIISExpress>

và thay đổi nó thành sự thật.

<UseIISExpress>true</UseIISExpress>

Mặc dù tôi cảm thấy đây là một cách giải quyết vấn đề hơn là giải pháp thực tế, nhưng đã cho nó một ngón tay cái lên khi nó giải quyết mối quan tâm trước mắt của tôi.
Nandun

Làm việc độc đáo :)
Hammad Sajid

4

Bạn có thể tải dự án mà không đặt giá trị của thuộc tính UseIIS thành true. Chỉ cần làm theo các bước dưới đây:

Trong tệp mywebproject.csproj--

Xóa thẻ <IISUrl> http: // localhost / MyWebApp / </ IISUrl> và lưu tệp. Ứng dụng sẽ tự động gán cổng mặc định cho nó.


4

Bạn sẽ không tin rằng, startstudio hình ảnh với tư cách Quản trị viên

hiển nhiên từ tin nhắn

Không thể tìm thấy máy chủ Web ' http: // localhost / MyWebApp '.

không thể được tìm thấy bởi vì có thể it has no privileges to see it

Vì vậy, chỉ cần restarthình ảnh studio là Quản trị viên


3

Trong trường hợp của tôi, tôi muốn chuyển từ http sang https, vì vậy tôi đã xóa http khỏi IIS. Trong tệp .csproj.user của tôi thấy rằng tôi vẫn có:

<IISUrl>http://localhost/</IISUrl>

Vì vậy, tôi đã thay đổi nó thành:

<IISUrl>https://localhost/</IISUrl>

2

Trong trường hợp của tôi, tôi đã có thể mở giải pháp ở chế độ ngoại tuyến chỉ bằng cách chạy lệnh:

iisreset

2

Đối với những người dùng Win8 ngoài đó, nếu bạn làm theo các bước trong câu trả lời được chấp nhận, bảng điều khiển sẽ phát ra một thông báo cho bạn rằng "bạn sẽ không sử dụng dòng lệnh để thực thi lệnh này" (diễn giải). Thay vào đó, truy cập Chương trình & Tính năng thông qua Bảng điều khiển (hoặc Windows + R> appwiz.cpl), nhấp vào 'Bật hoặc tắt tính năng của Windows' và đảm bảo bạn đã cài đặt các tính năng sau:

Internet Information Services
  > World Wide Web Services
    > Application Development Features
      > ASP.NET 4.5

Điều này sẽ kiểm tra một loạt các tùy chọn khác là tốt. Ngay sau khi tôi cài đặt các tính năng này và chạy VS2012 với quyền nâng cao, tôi đã có thể khởi chạy ứng dụng của mình thành công.


2

Điều này xảy ra với tôi khi tôi cố mở một dự án từ tệp .csproj, nhưng tôi đã vượt qua nó bằng cách mở dự án từ VS:

Tệp> Mở> Trang web

và chọn thư mục bao gồm dự án của tôi.


1

Tôi cũng có lỗi này. Tôi nghĩ mọi thứ đã được thiết lập chính xác, nhưng tôi phát hiện ra rằng một điều còn thiếu: Tên máy chủ tôi sử dụng cho dự án của mình chưa thể giải quyết được.

Vì ứng dụng của tôi xác định tên của khách hàng hiện tại từ tên máy chủ, tôi đã sử dụng tên máy chủ như clientname.mysuperapp.localđể phát triển. Khi tôi thêm tên máy chủ phát triển vào hoststệp của mình , dự án có thể tải lại được. Rõ ràng, dù sao tôi cũng phải làm điều này, nhưng tôi không nghĩ rằng VS kiểm tra tên máy chủ trước khi tải dự án.


1

Kiểm tra nếu IIS Express được cài đặt. Nếu IIS Express bị thiếu, Visual Studio có thể loại bỏ cài đặt <UseIISExpress>false</UseIISExpress>và vẫn tìm kiếm express.


1

trong trường hợp của tôi, đảm bảo bạn có một trang web "Mặc định"


1

Trong trường hợp của tôi, "Trang web mặc định" trong IIS không có ràng buộc cho localhost trên cổng 80. Bạn nên có một ràng buộc cho bất kỳ giá trị nào của bạn trong tệp .csproj.


1

Tôi đã sửa lỗi này đơn giản bằng cách cài đặt lại IIS Express sau khi tải xuống từ liên kết bên dưới:

https://www.microsoft.com/en-us/doad/conf Confirmation.aspx? id = 48264


1
Điều này không cung cấp một câu trả lời cho câu hỏi. Một khi bạn có đủ danh tiếng, bạn sẽ có thể nhận xét về bất kỳ bài đăng nào ; thay vào đó, cung cấp câu trả lời không yêu cầu làm rõ từ người hỏi . - Từ đánh giá
FluffyKitten

@FluffyKitten Tôi gặp lỗi tương tự như OP, tôi đã thử tất cả các câu trả lời khác và không có gì hiệu quả khi cài đặt lại IIS Express. Vì vậy, tôi tin rằng đây là câu trả lời của tôi cho câu hỏi của OP. Cài đặt lại IIS.
Matthew

Câu trả lời của bạn được gắn cờ là chất lượng thấp và đang trải qua quá trình đánh giá (lưu ý "Từ đánh giá" ở cuối nhận xét). Mặc dù nó có thể hoạt động, cài đặt lại phần mềm là một lựa chọn cuối cùng khi không có gì khác hoạt động và không phải là giải pháp cụ thể cho vấn đề này của OP.
FluffyKitten

Nếu đó là một lựa chọn cuối cùng sau khi không có gì khác hoạt động, và theo Ajay2707, có khả năng không có câu trả lời nào khác hoạt động cho một số người nghèo tâm hồn thì tôi nghĩ câu trả lời này có thể hữu ích. Làm thế nào bạn có thể chỉ định một câu trả lời là chất lượng thấp khi nó có thể là điều duy nhất phù hợp với một số người? Tôi ủng hộ bạn Ajay2707. Cảm ơn bạn đã dành thời gian để đóng góp cho cộng đồng.
nardnob

Inb4 cuộc hội thoại này được di chuyển / xóa là chất lượng thấp. viva la kháng chiến !!
nardnob

0

Trong trường hợp của tôi, url được tham chiếu trong tệp csproj không chính xác.

Nó cần phải được bắt đầu bằng www.

Tôi đã thực hiện các thay đổi, lưu tệp và dự án được tải tốt.


0

Tôi gặp vấn đề này khi <ProjectTypeGuids>phần tử trong tệp .csproj chứa dự án thử nghiệm đơn vị GUID : {3AC096D0-A1C2-E12C-1390-A8335801FDAB}.

Loại bỏ nó làm cho tải dự án mà không có vấn đề.


0

Đối với người dùng DNN, vấn đề của tôi là tôi cần một ràng buộc cho dnndev.me tại cổng 80. Tôi có nhiều cài đặt chạy trên các cổng khác nhau và VS yêu cầu Url cụ thể đó tồn tại trên cổng 80 (không phải 86 như của tôi).

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.