2011-02-08 38 views
14

Tôi đang cố gắng xuất bản dịch vụ web bằng cách sử dụng WCF trên IIS7.IIS 7 không nhận dạng tệp svc

Tôi đã tạo Trang web cho dự án này và tôi đã tạo một Ứng dụng quá MSDN suggested. Tôi có thể mở các tệp html trong trình duyệt của mình từ thư mục đã tạo, nhưng tôi gặp lỗi 404.3 (Trang bạn đang yêu cầu không thể được phân phát vì cấu hình tiện ích mở rộng) nếu tôi cố gắng truy cập tệp svc của dịch vụ của mình. Tôi đã đọc rằng tôi nên chạy servicemodelreg để cài đặt các trình xử lý bị thiếu cho các tệp svc. Sau khi tôi đã làm tôi đã nhận được một lỗi nói rằng xử lý có một mô-đun xấu.

Tôi đã kiểm tra những thứ sau mỗi lần:

  • IIS được bật
  • ASP.NET được bật
  • Có một handler cho các tập tin svc

Tôi chạy ngoài ý tưởng ...

+0

Bạn đang nhìn thấy trong các bản ghi sự kiện? – RQDQ

+0

Bạn có thư mục '/ bin' và là nhị phân dịch vụ trong đó không? –

+1

Hãy thử chạy aspnet_regiis.exe -i và đặt ApplciationPool của ứng dụng thành Framework 4. – vorrtex

Trả lời

18

Nó xảy ra nếu IIS được cài đặt sau .NET Framework và Visual Studio, vì vậy nó là cần thiết o đăng ký ASP.Net. Nếu để cài đặt IIS lúc đầu, sẽ không có vấn đề như vậy.

Nhưng giải pháp rất đơn giản: mở Visual Studio Command Promt và gõ lệnh này

aspnet_regiis.exe -i 

Đây là một link với thông tin chi tiết hơn về lệnh này và các thông số của nó.

+2

Tôi gặp sự cố tương tự với Windows 8. Trên đây không được hỗ trợ. Bạn cần phải vào Control Panel, bật hoặc tắt tính năng Windows và đảm bảo các tính năng bạn cần theo .NET 3.5 và 4.5 được chọn. – Jon

+0

Đã lưu ngày của tôi !!! – Obelix

+0

Có, trong Windows 8 nó đã thay đổi, nhưng TẠI SAO? Đó là ngoài tôi lý do tại sao Microsoft tiếp tục thay đổi những thứ cơ bản đơn giản như thế này, vào tính năng thêm/bớt tính phức tạp, ở đây bằng cách này .NET 4 hoàn toàn mất tích (nó có nghĩa là đánh dấu .NET 4.5 có nghĩa là .NET 4, nhưng tại sao tất cả mess này, thay vì lệnh aspnet_regiis đơn giản). – Visar

22

Mở windows 8, chạy DISM.exe để cho phép WCF:

DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation 
DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45 

Hoặc nếu bạn đang thiết lập mọi thứ sử dụng quản lý máy chủ Bảng điều khiển của Add Roles và Features Wizard đừng quên kiểm tra "HTTP Activation" dưới WCF Dịch vụ

enter image description here

+2

tức là đừng quên bật "Kích hoạt HTTP" trong danh sách tính năng WCF từ vai trò và trình hướng dẫn thiết lập tính năng .. cảm ơn! –

+0

Tính năng này hoạt động trong Windows Server 2012 khi bạn không cài đặt Visual Studio. –

3

Đối với Windows 8 để cho phép WCF đã phải chạy các lệnh này trong một quản trị viên bắt đầu trực quan chỉ huy Studio nhắc:

DISM /Online /Enable-Feature /FeatureName:WAS-WindowsActivationService 
DISM /Online /Enable-Feature /FeatureName:WAS-ProcessModel 
DISM /Online /Enable-Feature /FeatureName:WAS-NetFxEnvironment 
DISM /Online /Enable-Feature /FeatureName:WAS-ConfigurationAPI 
DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation 
DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45 
+0

Tôi đã gỡ cài đặt trước tiên (với "DISM/Online/Disable-Feature"), sau đó tôi đã cài đặt lại và hoạt động! – digiogo

5

làm các bước sau để phép SVC tập tin xử lý theo IIS trên của Windows 10

  1. Nhấn Window Key + R (Nó sẽ bật lên Run lệnh, Loại optionalfeatures và nhấn enter.
  2. Nó sẽ mang lại trình hướng dẫn tính năng chương trình. Đảm bảo rằng các tùy chọn sau được chọn như được hiển thị trong ảnh chụp nhanh.

Thực hiện theo bước được đề cập trong Snapshots sau

Snapshot 1 Showing the Windows Features Required to Turn On

Snapshot 2 Showing to turn on More Features

+0

Đây chính xác là những gì tôi cần! Bài đăng tuyệt vời! +1 cho đồ họa –

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