2008-11-11 51 views
25

Hiện tại, nhóm dev của chúng tôi đã thiết lập tất cả các trang web mà họ đang làm việc trên IIS trên máy cục bộ của họ. Chúng tôi đang nghĩ đến việc chuyển sang sử dụng máy chủ phát triển ASP.NET được xây dựng thay thế.Máy chủ phát triển ASP.NET hoặc Localhost IIS?

Đây có phải là một ý tưởng hay không? Ưu điểm/nhược điểm của việc sử dụng ASP.NET dev Server là gì? Có bất kỳ gotchas chúng ta nên biết?

Cảm ơn.

NB: Chạy trên Win XP/IIS 5/VS2005

Edit:

Đã không nhận ra nó được gọi là Cassini .. Nhiều câu trả lời cho Cassini v IIS here.

+0

Cassini là tên cũ khi nó vẫn đang được phát triển. Cassini là để ASP.NET phát triển máy chủ những gì Atlas là MS ASP.NET AJAX –

+0

Tôi rời khỏi liên kết này ở đây để nó có thể hữu ích cho bất cứ ai trong tương lai, vì nó vạch ra sự khác biệt - http: //www.asp. net/web-forms/tutorials/triển khai/triển khai-web-site-projects/core-sự khác biệt-giữa-iis-và-the-asp-net-phát triển-server-cs – Bibhu

Trả lời

32

Không có gì mà các ASP.NET Dev WebService thể làm điều đó IIS có thể không (Bạn có thể đặt breakpoint vv, chỉ cần gắn debugger VS để thời gian chạy ASP.NET) là.

Tuy nhiên, ASP.NET Dev WebService không đại diện cho một môi trường sản xuất đúng, và như vậy bạn có thể nhận được đánh bắt bởi gotchas rằng bạn sẽ không mong đợi khi bạn triển khai vào sản xuất.

Vì lý do đó, tôi ủy quyền rằng tất cả phát triển được thực hiện bằng IIS trên máy cục bộ. Nó không mất nhiều công sức để cấu hình một trang web trong IIS.

+2

Đồng ý. Tôi đã nhấn một số của gotcha với chạy một dự án theo cách đó. Bạn nên luôn luôn sử dụng IIS cục bộ. – EndangeredMassa

+0

+1 hoàn toàn, IIS cục bộ là tốt nhất để tránh (và chọn lên trước khi phát hành) bất kỳ vấn đề nào –

+3

IIS cục bộ không cung cấp cho bạn lợi thế của việc chỉnh sửa và tiếp tục. Nó sẽ là lý tưởng để có IIS7 như là một thay thế cho Cassini cũ – Jaap

1

Tôi biết tại một thời điểm tôi gặp sự cố với xác thực không làm việc như mong đợi trên Cassini (được xây dựng trong máy chủ phát triển)

Ngoài ra, nếu bạn cần phải kiểm tra những thứ như plugins ISAPI (một tái nhà văn ví dụ) Tôi không chắc làm thế nào được thực hiện trên Cassini.

Cổng thay đổi liên tục cũng khá là không hài lòng với tôi. Ngoài ra, đối với mỗi dự án web trong giải pháp của bạn, nó sẽ kích hoạt một phiên bản khác của máy chủ Casini và mỗi một dự án mất từ ​​20 đến 50 MB bộ nhớ.

Tôi sử dụng IIS mọi lúc, nó khá dễ thiết lập, và các bạn đã làm điều đó ...

+0

Đồng ý tái. số cổng. Chúng tôi hiện đang tạo một nguồn cấp dữ liệu RSS cho các liên kết đến trang web dev của chúng tôi, đừng nghĩ rằng tôi có thể làm cho nó hoạt động với Cassini – Nick

+2

Trên tab "Web" của màn hình thuộc tính dự án web của bạn, bạn có thể chỉ định một cổng tĩnh. Đối với các dự án Trang Web, điều này nằm trong cửa sổ thuộc tính tiêu chuẩn. – JasonS

24

Đó là một ý tưởng rất hay. Dưới đây là một số lý do cho:

  • Bạn không còn cần quyền truy cập admin vào máy của bạn để phát triển web (nó vẫn có thể hữu ích).
  • Sẽ dễ dàng hơn nhiều để kiểm tra thay đổi nhanh và tiếp tục hoạt động và faster iteration cycles are good.
  • Nó có thể đơn giản hóa việc thiết lập và triển khai các môi trường phát triển của bạn.
  • Phiên bản XP của IIS có giới hạn không có trong phiên bản Máy chủ mà các bước phụ của Cassini.

Đối số duy nhất tôi biết là có một vài trường hợp rất hiếm khi máy chủ tích hợp Cassini không chính xác bắt chước IIS vì bạn đang sử dụng số cổng lẻ. Tôi nghi ngờ bạn sẽ bao giờ chạy vào chúng, và bằng cách sử dụng Cassini như môi trường dev chính không loại trừ các nhà phát triển cũng có quyền truy cập vào IIS trên máy. Thực tế, thiết lập ưa thích của tôi là Cassini trước hết cho công việc nhỏ nhất, sau đó triển khai IIS cục bộ của tôi để kiểm tra sâu hơn trước khi chuyển mã trở lại kho lưu trữ nguồn được chia sẻ.

[Chỉnh sửa]
Quên về viết lại url. Bạn cần IIS cho điều đó. Và một ví dụ về một hạn chế của XP IIS tích hợp là bạn bị giới hạn ở một trang trong XP (có thể có nhiều ứng dụng, nhưng đó là một điều khác).

+7

Ống Cassini mỗi yêu cầu với thời gian chạy ASP.NET, IIS không. Cassini không thể sử dụng ISAPI ... IIS. Bạn có thể cấu hình Visual Studio để khởi động localhost của bạn trên IIS khi khởi chạy ứng dụng, và nó sẽ khởi động nhanh hơn tải cassini. – FlySwat

+0

Tôi với Joel trên trang này. Trừ khi tôi va vào thứ gì đó mà Cassini không thể làm được (viết lại URL) Tôi không gặp rắc rối gì với Cassini và thấy nó rất tiện dụng. –

+1

Thật thú vị khi một câu trả lời như thế này được bình chọn. Tôi nghĩ rằng ý kiến ​​được trình bày có giá trị - nhưng ngay cả khi tôi không đồng ý với nó bỏ phiếu nó xuống không phải là cách làm điều đó. –

2

Tôi đã sử dụng cả hai phương pháp và tôi thích có IIS cục bộ hơn so với sử dụng máy chủ tích hợp. Ít nhất bạn nhất quán hơn với thiết lập triển khai cuối cùng.

5

Tôi phải chuyển (quay lại) sang IIS cho một dự án, vì tôi cần thiết đặt một số thư mục ảo ảo mà không thể thực hiện trên Máy chủ web phát triển ASP.NET.

1

Ngoài ra, khi sử dụng IIS 5.1, hãy chắc chắn để có được JetStat IIS Admin, nó thêm chức năng vô hiệu hóa ra khỏi hộp trên IIS 5, chẳng hạn như có thể thiết lập nhiều trang web.

+0

Cảm ơn, sẽ xem xét, nó sẽ tiết kiệm phải thêm mã để đối phó với các VDirs. – Nick

5

Như tôi đã nêu ở đây: https://stackoverflow.com/questions/103785/what-are-the-disadvantages-of-using-cassini-instead-of-iis nhà phát triển của bạn cần lưu ý rằng Cassini chạy như người dùng cục bộ, thường là tài khoản quản trị dành cho nhà phát triển. Sự phát triển sẽ có thể truy cập bất kỳ tệp hoặc tài nguyên nào mà tài khoản của họ có thể, khác với những gì họ sẽ thấy trên máy chủ IIS 6.

Một điều nữa đó là một bản ghi nhớ khá lớn là việc gỡ lỗi các dịch vụ web dễ dàng hơn nhiều khi sử dụng IIS và vdir chứ không phải là các cá thể Cassini riêng biệt.

1

tôi đã chạy vào những hạn chế sau đây với máy chủ asp.net dev:

  1. không hỗ trợ dirs ảo. Nếu bạn cần chúng trong ứng dụng của mình, IIS có vẻ là lựa chọn duy nhất của bạn

  2. Trang asp cổ điển không chạy trong máy chủ dev. Vì vậy, nếu bạn có một ứng dụng web hỗn hợp (như tôi có ít khách hàng của tôi ngay bây giờ), IIS có vẻ là giải pháp

  3. Nếu bạn cần một giao diện người dùng admin để cấu hình cài đặt, IIS hoạt động tốt hơn

Tất nhiên IIS yêu cầu bạn phải là quản trị viên cục bộ.

0

Vấn đề chính mà tôi đã gặp phải với máy chủ dev là SerializationExceptions với các hiệu trưởng bảo mật tùy chỉnh được lưu trữ trên ngữ cảnh luồng. Chi tiết here.

1

Một sự khác biệt mà tôi nhận thấy là Cassini chạy dưới dạng quy trình 32 bit và bạn không có quyền kiểm soát, trong khi bạn có thể kiểm soát ứng dụng IIS của ứng dụng để không cho phép 32 bit (giả sử IIS của bạn đang chạy trên Máy chủ 64 bit). Điều này trở nên đặc biệt quan trọng nếu ứng dụng web của bạn sẽ gọi API trong các quy trình 64 bit như SharePoint Foundation/Server 2010. Khi bạn gỡ lỗi ứng dụng web của mình với Cassini làm máy chủ gỡ lỗi, bạn sẽ nhận được "Ứng dụng web tại url có thể không được tìm thấy. Xác minh rằng bạn đã nhập đúng URL "gõ lỗi khi khởi tạo đối tượng. Nếu bạn gỡ lỗi bằng cách sử dụng IIS với ứng dụng đang chạy trong một nhóm ứng dụng chạy dưới dạng 64 bit với một danh tính cho phép truy cập vào cơ sở dữ liệu sharepoint thì bạn sẽ có thể gỡ lỗi đúng cách.

1

Trong VS12 máy chủ phát triển chậm, mất vài giây để tải xuống tệp 2kbyte. Điều này đã không xảy ra trong vs10. Khi bạn có một loạt các tập tin jquery và css đây là một vấn đề thực sự. Ngoài ra, mọi trang đều yêu cầu tất cả các tệp css/js. Thử nghiệm hồi quy rất chậm.

+0

Tôi chưa bao giờ nhận thấy bất kỳ sự chậm trễ nào như vậy. Phải có điều gì đó sai với cài đặt của bạn hoặc cài đặt trình duyệt của bạn. (Tôi nhớ có điều gì đó kỳ lạ xảy ra với Firefox và sử dụng 'localhost' hoặc' 127.0.0.1', nhưng tôi không nhớ nó là gì và nó đã sửa cái gì) –

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