2012-10-19 15 views
15

Tôi đang sử dụng visual studio 2012 khi tôi cố gắng để xuất bản ứng dụng web của tôi, tôi nhận được lỗi sau:Đây là một lỗi sử dụng một phần đăng ký là allowDefinition = 'MachineToApplication'

Error 1 It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS. E:\Temp\BUILD\Debug\AspnetCompileMerge\Source\bin\web.config 24 0 Pixelate 

Dưới đây là nội dung của cửa sổ đầu ra:

1>------ Build started: Project: Pixelate, Configuration: Debug Any CPU ------ 
1> No way to resolve conflict between "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes" and "System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e". Choosing "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes" arbitrarily. 
1> No way to resolve conflict between "System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" and "System.ServiceModel.Web, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e". Choosing "System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" arbitrarily. 
1> Pixelate -> [...]\bin\TwistedPixel.Pixelate.dll 
1> '[...]\bin' 
1> CMD.EXE was started with the above path as the current directory. 
1> UNC paths are not supported. Defaulting to Windows directory. 
2>------ Publish started: Project: Pixelate, Configuration: Debug Any CPU ------ 
2>Connecting to [...]... 
2>Transformed Web.config using [...]\Web.Debug.config into E:\Temp\BUILD\Debug\TransformWebConfig\transformed\Web.config. 
2>Transformed[...]\Web.config using [...]\bin\Web.Debug.config into E:\Temp\BUILD\Debug\TransformWebConfig\transformed\bin\Web.config. 
2>Copying all files to temporary location below for package/publish: 
2>E:\Temp\BUILD\Debug\AspnetCompileMerge\Source. 
2>C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v/-p E:\Temp\BUILD\Debug\AspnetCompileMerge\Source -c -d E:\Temp\BUILD\Debug\AspnetCompileMerge\TempBuildDir 
2>E:\Temp\BUILD\Debug\AspnetCompileMerge\Source\bin\web.config(24,0): Error ASPCONFIG: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS. 
2> 
========== Build: 1 succeeded, 0 failed, 2 up-to-date, 0 skipped ========== 
========== Publish: 0 succeeded, 1 failed, 0 skipped ========== 

Nếu ai đó có thể giải thích tại sao điều này xảy ra và cách khắc phục, điều đó thật tuyệt.

Tôi đã thử làm sạch và xây dựng lại (nó xây dựng lại tốt) Tôi đã thử xóa thùng rác, obj và đã di chuyển thư mục đầu ra tạm thời - vẫn còn lỗi vẫn tồn tại.

+0

Có thể trùng lặp lỗi [allowDefinition = 'MachineToApplication' khi xuất bản từ VS2010 (nhưng chỉ sau lần xây dựng trước đó)] (http://stackoverflow.com/questions/2566215/allowdefinition-machinetoapplication-error-when-publishing-from -vs2010-nhưng-on) – JotaBe

Trả lời

-1

Có sự cố với một trong các cài đặt trong web.config của bạn. Lỗi có thể cung cấp cho bạn ý tưởng về vị trí.

+0

Dòng 24 của web.config là xử lý trạng thái phiên. Đối với những gì ít tôi hiểu về vấn đề này nó đã làm với thực tế là C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_compiler.exe -v/-p E: \ Temp \ BUILD \ Debug \ AspnetCompileMerge \ Source -c -d E: \ Temp \ BUILD \ Debug \ AspnetCompileMerge \ TempBuildDir đã tạo một bản sao của web.config bên ngoài một ứng dụng mà nó không thích ... – Neaox

+0

Web.config được sao chép từ thư mục ứng dụng vào thư mục bin mà nó không thích ... – Neaox

+0

Không có gì thay đổi trong web.config ít nhất trong tất cả các dòng đó. Dòng mà nó đề cập quá là: Neaox

25

Đây là vấn đề với quá trình xuất bản thêm web.config. Di chuột qua tab cho số web.config và bạn sẽ thấy vị trí của tệp phụ mà sau đó bạn có thể xóa sạch. Thậm chí có thể cho một cấu hình khác nhưng nó vẫn ném lỗi (ví dụ: Gỡ lỗi và Phát hành) Có thể trong một cái gì đó như <app>\obj\Release\Package\PackageTmp\web.config.

Xóa nó và bạn nên làm tốt. Có thể tái diễn sau này xuất bản mặc dù.

+0

Điều này rất hữu ích trong việc tìm kiếm giải pháp cho cùng một vấn đề tôi gặp phải, trong trường hợp của tôi thuộc tính web.config "Sao chép sang đầu ra" đã được thay đổi thành "Luôn luôn", bằng cách đổi lại thành "Không sao chép", đã giải quyết điều này. Cảm ơn bạn. – kamui

9

Điều này có vẻ là một vấn đề khá phổ biến và thông báo lỗi là hoàn toàn không có trợ giúp khi điều này là do web.config thêm được tạo bởi tính năng xuất bản web trong Visual Studio.

Tôi đã có thể khắc phục bằng cách buộc dự án ứng dụng ASP.NET của tôi thanh lọc thư mục obj sau mỗi lần xây dựng.

Thêm sau vào sự kiện sau xây dựng, và chạy các sự kiện sau xây dựng: 'Luôn'

rmdir /S /Q "$(ProjectDir)\obj" 
-1

giải pháp sạch trong khi giải pháp của bạn được cấu hình trong chế độ Release.

Giải pháp làm sạch trong khi giải pháp của bạn được định cấu hình trong chế độ Gỡ lỗi.

Tạo trong khi giải pháp của bạn được định cấu hình trong chế độ Gỡ lỗi.

Các vấn đề liên quan