IIS 7.5 (Express) applicationationhost.config: Vật lý của VirtualDirectory có thể là một đường dẫn tương đối không?


9

Tôi đang định cấu hình một trang web trong applicationhost.configIIS 7.5 Express:

<site name="default" id="1" serverAutoStart="true">
    <application path="/">
        <virtualDirectory path="/" physicalPath="%IIS_BIN%\..\Somewhere\Else" />
                                            <!-- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -->
    </application>
    ...
</site>

Tôi đã thấy rằng việc chỉ định các đường dẫn tương đối như được hiển thị dường như không hoạt động và sẽ dẫn đến HTTP 500.19 Internal Server Error. IIS tiếp tục báo cáo mã lỗi 0x8007007b, mà sau khi một số googling, dường như chỉ ra một cú pháp đường dẫn tệp không hợp lệ.

Có cách nào khắc phục lỗi này để tôi có thể sử dụng đường dẫn vật lý tương đối cho gốc trang web của mình không?

Câu trả lời:


6

Tiếc là không có. Đó phải là một con đường vật lý đầy đủ. Miễn là bạn không có kế hoạch thay đổi đường dẫn trang web của mình thường xuyên, một đường dẫn tĩnh không phải là vấn đề. Nếu bạn thường xuyên thay đổi đường dẫn của mình sang các phiên bản trang web khác nhau, bạn có thể muốn xem xét sử dụng appcmd để tạo kịch bản thay đổi để nó có được tất cả các thư mục con.


1
Nếu tốt cho dev chẳng hạn khi phân nhánh nếu Vdir có thể liên quan đến tệp cấu hình có thể được kiểm tra trong kiểm soát nguồn. Có ý tưởng nào để làm việc này không?
PilotBob

3
Thật không may, các đường dẫn tương đối không được hỗ trợ với các phiên bản hiện tại của IIS, vì vậy, giải pháp sạch nhất là sử dụng cùng một đường dẫn trên mỗi máy. Nếu bạn phải có các đường dẫn khác nhau trên các máy khác nhau (tôi giả sử máy dev) thì bạn có thể thử một biến môi trường. Tạo một biến môi trường hệ thống để nó có sẵn cho IIS và sử dụng biến đó cho gốc của đường dẫn trên các hệ thống riêng lẻ.
Scott Forsyth - MVP

2
Dường như một số biến môi trường được hỗ trợ, ví dụ, ví dụ <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />.
Uwe Keim

@UweKeim Bạn nói đúng, điều này không hoạt động với (các) phiên bản hiện tại của IIS. IIS 10 hỗ trợ các biến trong tệp vật lý bây giờ. Lưu ý rằng% IIS_SITES_HOME% dành cho IIS Express. Biến đó không tồn tại trong phiên bản đầy đủ của IIS. Tuy nhiên, các biến hệ thống khác làm việc.
Scott Forsyth - MVP
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.