WCF trên IIS8; * Bản đồ xử lý .svc không hoạt động


272

Tôi đang cố gắng để có một dịch vụ wcf chạy trong IIS8 trên 2012 build 8400.

Khi cài đặt vai trò web, công cụ wcf (dưới 3.51) không được tìm thấy như năm 2008.

Khi cài đặt ánh xạ trình xử lý svc bị thiếu, vì vậy tôi đã thực hiện:

%windir%\Microsoft.NET\Framework\v3.0\WindowsCommunication Foundation\ServiceModelReg.exe i

Bây giờ ánh xạ xử lý đã có, nhưng tôi vẫn nhận được:

The resource you are looking for does not have a handler associated with it.

(Tôi đã xóa trình xử lý tệp tĩnh.)

Trang web đang sử dụng các đường ống cổ điển để sử dụng mạo danh.

Câu trả lời:


553

Cụ thể hơn:

  1. Chạy Server Manager(trên thanh tác vụ và menu bắt đầu)
  2. Chọn máy chủ để quản trị (có thể là máy chủ cục bộ)
  3. Cuộn xuống Roles and Featuresphần "".
  4. Chọn " Add Role or Feature" từ nhiệm vụ thả xuống
  5. Trên Add Role or Feature Wizardhộp thoại "", nhấp xuống " Features" trong danh sách các trang bên trái.
  6. Mở rộng ".Net 3.5"hoặc ".Net 4.5", tùy thuộc vào những gì bạn đã cài đặt. (bạn có thể quay lại rolesmàn hình "" để thêm nếu bạn không có.
  7. Trong " WCF Services", đánh dấu vào ô " HTTP-Activation". Bạn cũng có thể thêm các loại không http nếu bạn biết bạn cần chúng (tcp, ống có tên, v.v.).
  8. Nhấn vào "Install"nút.

6
Cái này không hoạt động trong trường hợp của tôi vì tôi đang dùng Windows 8 (với IIS 8).
Josh Mouch

9
Nếu lần đầu tiên bạn chạy ServiceModelReg.exe hèi từ thư mục v3.0, bạn cũng cần chạy ServiceModelReg.exe Nottua để hoàn tác trước khi nó hoạt động.
Scott Anderson

14
Từ dòng lệnh: merg / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation / All
Richard

4
Còn về gyorgybalassy.wordpress.com/2012/09/24/ thì sao? cách nào tốt hơn?
Kiquenet

9
Tôi đã nhìn chằm chằm vào trang "Vai trò máy chủ" trong một giờ. Tôi không biết bạn chỉ có thể nhấp vào "Tiếp theo" hoặc nhấp xuống "Tính năng" ở bên trái. o_O +1
Dan Bechard

219

Tôi phải kích hoạt HTTP Activationtrong .NET Framework 4.5 Advanced Services>WCF Services

Kích hoạt HTTP


10
đây là những gì bạn cần làm cho Windows 8 khi không có trình quản lý máy chủ
Simon_Weaver

2
Đây là câu trả lời khi bạn lưu trữ Dịch vụ WCF trong Windows 8 và Windows 8.1
vcRobe

Kích hoạt http. Có bất kể bạn sử dụng http / https không? Vì vậy, đó là một tên tóm tắt cho cả hai hoặc vẫn còn một sự phân biệt cần thiết ở đó?
Thomas

2
Tôi gặp vấn đề tương tự trên IIS 10, Kích hoạt http bị tắt theo mặc định. Cho phép nó giải quyết vấn đề ngay lập tức. Cảm ơn!
dhruvpatel

4
Hoạt động cho Windows 10, IIS 10
watbywbarif

45

bật BẬT sau đây 'Bật hoặc tắt tính năng của Windows'

a) .Net Framework 3.5 - Kích hoạt HTTP WCF và Kích hoạt không phải là http

b) tất cả theo Dịch vụ WCF


1
Tôi chỉ phải bật .Net Framework 3.5 - Kích hoạt HTTP WCF
daveywc

40

Windows 8 với IIS8

  • Đánh Windows+X
  • Chọn Programs and Features(mục đầu tiên trong danh sách)
  • Chọn Turn Windows Features on or offbên trái
  • Mở rộng .NET Framework 4.5 Advanced Services
  • Mở rộng WCF Services
  • Kích hoạt HTTP Activation

bất kỳ kịch bản powershell để làm điều đó lập trình?
Kiquenet

chúng tôi có một máy chủ vì vậy tôi chưa bao giờ vào Powershell nâng cao
Simon_Weaver

28

Tôi thích làm điều này thông qua một kịch bản ngày nay

REM install the needed Windows IIS features for WCF
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

REM Feature Install Complete
pause

2
Cảm ơn dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45đã đủ cho tôi ...
Shubh

Đây là cách tốt nhất để khắc phục điều này trên phiên bản Windows Server 2012R2 + mới. Có lẽ cũng hoạt động vào năm 2012 nhưng may mắn thay, tôi không còn những thứ đó để thử cái này nữa.
Paul Sturm

và sử dụng tập lệnh PowerShell ?
Kiquenet

@Kiquenet Các lệnh này đều sẽ hoạt động trong powershell. Nếu bạn đã cố gắng sao chép trực tiếp lệnh của Shubh, bạn cần thêm dấu ngắt dòng hoặc dấu chấm phẩy sau lệnh đầu tiên trước lệnh hủy thứ hai.
kb4000

10

Chúng tôi đã cố gắng giải quyết lỗi trong Windows Server 2012 bằng cách:

  1. Xóa khỏi "Xóa vai trò và trình hướng dẫn tính năng" .NET Framework 4.5 Tính năng / ASP.NET 4.5 và tất cả các tính năng phụ thuộc của nó
  2. Cài đặt lại các tính năng đã gỡ bỏ.

Có vẻ như thứ tự cài đặt là nguyên nhân.

Ngoài ra, hãy đảm bảo bạn đã cài đặt Kích hoạt HTTP trong Dịch vụ WCF.


Tôi đã làm điều này và dường như đã giết chết máy chủ của tôi. Tôi chỉ gỡ cài đặt nội dung asp.net trong iis, nhưng bây giờ khi tôi điều khiển từ xa, tôi nhận được màn hình đen và cửa sổ nhắc lệnh, như máy chủ chỉ là "lõi máy chủ" bây giờ ... :(
MGOwen

@MGOwen khi bạn loại bỏ một số tính năng của .net 4.5 thì có vẻ như nó cũng loại bỏ Server Graphical Shell, điều này có thể được thêm lại bằng một số lệnh.
Giăng

3

Đối với máy Windows 8 không có ứng dụng "Trình quản lý máy chủ" (ít nhất là tôi không thể tìm thấy nó).

Mặc dù tôi đã có thể giải quyết vấn đề . Tôi không chắc chắn trong chuỗi nào tôi đã thực hiện các thao tác sau nhưng có vẻ như một / vài hành động sau đây sẽ giúp:

  1. Bật BẬT sau đây 'Bật hoặc tắt tính năng của Windows' a) .Net Framework 3.5 - Kích hoạt HTTP WCF và Kích hoạt không phải là b) tất cả trong Dịch vụ WCF (như được chỉ định trong một trong các câu trả lời cho câu hỏi này)

  2. đã thực thi "ServiceModelReg.exe Từi" trong thư mục "% Windir% \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation \"

  3. Đã đăng ký ASP.NET 2.0 thông qua hai lệnh (trong thư mục C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727):

    aspnet_regiis -ga "NT AUTHORITY \ NETWORK DỊCH VỤ" aspnet_regiis -iru

  4. Đã khởi động lại PC ... có vẻ như kết quả là các hành động ## 3 và 4 đã bị hỏng trong cấu hình ASP.NET của tôi

  5. Lặp lại hành động # 2

  6. Cài đặt hai tùy chọn khác từ "Chương trình và Tính năng": .Net Framework 4.5 Dịch vụ nâng cao. Tôi đã kiểm tra cả hai tùy chọn phụ: dịch vụ ASP.NET 4.5 và WCF

  7. Khởi động lại nhóm ứng dụng.

Trình tự là một loại điên rồ, nhưng điều đó đã giúp tôi và có lẽ sẽ giúp cho người khác


Các bit chính đang bật Kích hoạt HTTP.
Umar Farooq Khawaja


2

Thứ tự cài đặt rất quan trọng khi định cấu hình IIS 8 trên Windows 8 hoặc Windows Server 2012.

Tôi đã gặp rất nhiều vấn đề khi định cấu hình IIS 8 nhưng cuối cùng các liên kết này đã giúp tôi


2

sử dụng PowerShell, bạn có thể cài đặt tính năng cần thiết với:

Add-WindowsFeature 'NET-HTTP-Activation'

1

Trên windows 10 (client), bạn cũng có thể tạo kịch bản này bằng cách sử dụng

Enable-WindowsOptionalFeature -Online -NoRestart -FeatureName WCF-HTTP-Activation45 -All

Lưu ý rằng đây là một lệnh khác với skus máy chủ


0

Đó là tính năng Kích hoạt HTTP của khung .NET Tính năng kích hoạt quy trình Windows cũng được yêu cầu


0

Đây là một điều thực sự ngớ ngẩn đối với tôi. Thêm vào đây vì đây là một trong những chủ đề phổ biến hơn về các vấn đề svc 404.

Tôi đã có trong Cài đặt dự án '\ Web \ URL dự án, đã dán:

http://blah.webservice.local.blahblah.com/Blah.svc

Và vì một số lý do không xác định (đã thực hiện điều này hàng ngàn lần) đã không nhận ra ngay rằng tên của tệp .svc nằm ở cuối.

ĐỪNG!

Tôi vừa dán địa chỉ từ khách hàng kiểm tra WCF của mình và chưa kiểm tra đầy đủ. Điều này đã làm trong nền là tạo một ứng dụng IIS tại địa chỉ .svc và tôi không nhận được gì từ IIS. Tôi không thể tìm ra cách tôi thậm chí không thể nhấn tệp .svc.

Sửa lỗi đơn giản, rõ ràng, chỉ cần xóa ứng dụng trong IIS và thay đổi URL dự án.

Sau gần 20 năm, bạn vẫn có thể mắc lỗi học sinh / lỗi tân binh. Hy vọng điều này sẽ giúp được ai đó.

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.