Đã xảy ra lỗi khi cố gắng xác định id quy trình của quy trình DNX lưu trữ ứng dụng của bạn


101

Tôi nhận được thông báo lỗi này khi tôi đang cố gắng khởi động ứng dụng.

Đã xảy ra lỗi khi cố gắng xác định id quy trình của quy trình DNX lưu trữ ứng dụng của bạn

Có cách nào để khắc phục sự cố không?

Câu trả lời:


151

Đối với tôi, vấn đề đã được giải quyết bằng cách đóng Visual Studio, xóa

project.lock.json

và khởi động lại Visual Studio.

Chỉnh sửa : Tôi đã sử dụng RC1.


2
Giải quyết vấn đề của tôi trong dự án RC1
Nadav Hury

@NadavHury Cùng đây :)
ManyRootsofAllEvil

1
Giải quyết vấn đề tôi đã có với ứng dụng ví dụ RC1 tải về từ Pluralsight, nhiều đánh giá cao
tomRedox

5
điều này không hoạt động nữa. np microsoft. chúng tôi sẽ tìm ra nó. một lần nữa và một lần nữa và ... LẠI

1
ở đâu project.lock.json?
CodyBugstein

34

Microsoft đã thay đổi mô hình lưu trữ như được mô tả trong ghi chú phát hành .

Thay project.jsonthế sự phụ thuộc

"Microsoft.AspNet.Server.IIS": "1.0.0-beta7"

với

"Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8"


Trong web.configtrong handlersphần loại bỏ tất cả các mục trừ

<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />

Toàn bộ web.configsẽ trông như thế này:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
    </handlers>
    <httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
  </system.webServer>
</configuration>

RC1: Trong khi sử dụng RC1, tôi đã gặp lỗi sau khi di chuyển thư mục giải pháp. Sau khi xóa thư mục binobjmọi thứ hoạt động trở lại.
Như user764754 đã lưu ý, chỉ cần khởi động lại Visual Studio cũng có thể hữu ích.


Trong mô hình lưu trữ mới, bạn hoàn toàn không sử dụng web.config và có thể xóa hoàn toàn. HttpPlatformHandler và Startup.cs thay thế web.config, vì bạn đang bỏ qua IIS ở một mức độ nhất định.
cygnim

2
Tôi sử dụng các mẫu mới nhất sau khi cài đặt 1.0.0-beta8 trước, sau đó tạo một dự án ASP.NET mới trong VS 2015. Tất cả các mục nhập đều đúng, tôi vẫn gặp lỗi tương tự như Domysee. Ai đó có thể vui lòng giải thích "% DNX_PATH%" và "% DNX_ARGS%" có nghĩa là gì?
okieh

1
Tôi nên làm rõ, bạn không cần web.config trong dự án của mình. Một tệp web.config tối thiểu được tạo trong quá trình biên dịch, về cơ bản nó sẽ thêm HttpPlatformHandler vào đường dẫn và hướng lưu lượng truy cập từ IIS đến máy chủ Kestrel. Vì vậy, bạn nói đúng, có một tệp web.config, nhưng nó không cần thiết trong cơ sở mã dự án của bạn.
cygnim

3
Chỉ cần khởi động lại VS đã làm điều đó cho tôi với RC-1 mà không cần xóa.
user764754 9/12/15

2
Tôi gặp vấn đề tương tự với RC1, giải pháp cho tôi là xóa web.config (trong wwwroot)
rad

30

Đối với những người khác gặp sự cố này, trong trường hợp các giải pháp khác không hoạt động - tôi đã tìm thấy câu trả lời trong chủ đề này: Buộc sử dụng SSL: Đã xảy ra lỗi khi cố gắng xác định id quy trình của quy trình DNX lưu trữ ứng dụng của bạn

Tôi dự án của bạn sử dụng hoặc thực thi SSL, hãy chạy nó mà không cần gỡ lỗi (CTRL + F5) trước tiên, nó sẽ yêu cầu bạn tạo chứng chỉ SSL cục bộ và sau đó việc gỡ lỗi sẽ hoạt động và lỗi sẽ biến mất.


CÁi này đã sửa nó giúp tôi. Tôi đã di chuyển dự án của mình sang một máy tính mới chưa được cài đặt chứng chỉ. Cảm ơn.
Nhịp độ

Tốt, đó là nó! Tôi sẽ lưu ý điều này trên trang "Bật xác thực bằng Facebook ...", vì hướng dẫn của họ bao gồm việc buộc SSL.
N8allan

Tôi không thể làm cho nó hoạt động bằng cách thực hiện CTRL + F5. F5 đã hoạt động sau khi chạy cái này để tin tưởng chứng chỉ iis express của tôi. Tôi không có cảnh báo nào, nhưng điều này đã khắc phục nó cho tôi.
Josh Đóng

11

Đối với những gì đáng giá, đây là một thông báo lỗi chung có thể đóng vai trò như một con cá trích đỏ cho bất kỳ vấn đề nào trong đó httpPlatformHandler không thể khởi chạy tệp thực thi đã cho (dnx trong trường hợp này).

Trong trường hợp của tôi, tôi nhận được lỗi này do hiểu nhầm tệp khởi chạySettings.json. Tôi đang cố kích hoạt điểm cuối https cho ứng dụng của mình và đã sao chép nhầm sslport trong applicationUrl của mình. Theo tôi hiểu thì applicationUrl phải là tên máy chủ / cổng http của ứng dụng và bằng cách điền vào sslPort, nó chỉ định cấu hình môi trường IIS Express để lắng nghe https trên tên máy chủ được cung cấp trong applicationUrl trên cổng được cung cấp trong sslPort.

Ví dụ:

  "iisSettings": {
     "windowsAuthentication": false,
     "anonymousAuthentication": true,
     "iisExpress": {
       "applicationUrl": "http://localhost:44000",
       "sslPort": 44300
      }
  }

Cung cấp hai điểm cuối sau trên localhost.

  • Http qua cổng 44400
  • Https qua cổng 44300

Nếu bạn có cùng một cổng trong cài đặt applicationUrl và sslPort, bạn sẽ nhận được lỗi liên quan đến chuỗi này.

Điều này đúng với tôi trên RC1


Tại sao sslPort phải khác với applicationUrl? Nó được sử dụng để làm việc cho tôi cho đến RTM ...
Boris Lipschitz

Tôi gặp lỗi: không thể kết nối với máy chủ web 'IIS Express' và sau khi xóa tệp "\ .vs \ config \ applicationhost.config", tôi đã gặp lỗi "đã xảy ra lỗi khi cố gắng ...". Trong dự án propperties> gỡ lỗi, tôi đã bỏ chọn SSL, chạy trình gỡ lỗi (đang hoạt động), đánh dấu vào SSL một lần nữa và sao chép URL vào "URL ứng dụng", gỡ lỗi ở chế độ SSL hoạt động trở lại. Tuy nhiên, lỗi xuất hiện sau khi cập nhật windows, không chắc đó có phải là nguyên nhân hay không. IisSettings của tôi hiện là "iisExpress": {"applicationUrl": " localhost: 44369", "sslPort": 44369} .. nó hoạt động nếu số cổng không giống nhau
JimiSweden

6

Có thể nâng cấp, tôi thấy tôi đã phải xem qua các mẫu cập nhật mới ở đây .

Cập nhật web.config của bạn trong wwwroot để bao gồm:

<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>

Bạn cũng sẽ cần thay đổi cách dự án gỡ lỗi bằng Kestrel bằng cách sửa đổi dự án của bạn.json:

"commands": {
  "web": "Microsoft.AspNet.Server.Kestrel"
},
"dependencies": {
  "Microsoft.AspNet.IISPlatformHandler": "1.0.0-beta8",
  "Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8",
}

và sửa đổi hosting.ini của bạn

server=Microsoft.AspNet.Server.Kestrel

và thêm điều này vào phương thức Định cấu hình trong startup.cs

// Add the platform handler to the request pipeline.
app.UseIISPlatformHandler(); 

thêm các tham chiếu này sẽ cho phép bạn chạy dự án.


5

Tôi gặp sự cố này do cấu hình dự án đang thử khởi chạy https: // localhost thay vì http. Nhấp chuột phải vào dự án web, trong "Gỡ lỗi" và điều chỉnh "URL ứng dụng" thành http thay vì https. nhập mô tả hình ảnh ở đây

Một cách khác để giải quyết vấn đề này là chuyển trình khởi chạy từ "IIS Express" sang "Web"


3

Trong Visual Studio:

Trong khi làm theo hướng dẫn này, tôi đã gặp lỗi tương tự.

Đầu tiên, tôi nhận được lỗi: "Đã xảy ra lỗi khi cố gắng xác định id quy trình của dotnet.exe ..." Tôi đã thực hiện các bước sau.

  1. Tôi đã khởi động ứng dụng của mình mà không gỡ lỗi CTRL + F5.
  2. Sau đó, tôi được cung cấp một tùy chọn để chấp nhận chứng chỉ tự ký cho localhost.
  3. Tôi đã làm theo lời nhắc và sau đó tôi có thể truy cập ứng dụng của mình bằng AppUrl mà tôi đã sao chép sau khi bật SSL trong cài đặt gỡ lỗi dự án.

Trong khi thử một số cách để giải quyết lỗi đó, tôi cũng đã gặp lỗi này. "Đã xảy ra lỗi khi cố gắng xác định id quy trình của quy trình DNX lưu trữ ứng dụng của bạn"

Nguyên nhân là do có một phiên bản ứng dụng khác đang chạy.

Tôi hy vọng câu trả lời này sẽ giúp ai đó.


Chờ đã, vậy câu trả lời là "do có một phiên bản ứng dụng khác đang chạy"? Nên làm cho điều này rõ ràng hơn ngay lập tức.
Bloodied

2

Trong trường hợp của tôi trong dự án asp net core 1.1, .net framework 4.5.2, lỗi không tham chiếu đến dnx vì điều đó không còn nữa. Thay vào đó, nó đề cập đến tên dự án exe. Một phiên bản khác của lỗi chỉ đơn giản là không thể kết nối với iis express.

Vấn đề là sự ra đời của quy tắc ghi lại tên máy chủ chuẩn cố gắng buộc tất cả các kết nối phải có tên máy chủ bắt đầu bằng www. ví dụ: chuyển hướng gty.org đến www.gty.org để tuân theo chứng chỉ ssl của chúng tôi. Điều này là tốt trong sản xuất nhưng bạn không thể buộc https: // localhost: 44347 / bắt đầu bằng www và hy vọng iis express có thể xử lý nó.

<rule name="CanonicalHostNameAddwww" enabled="true" stopProcessing="true">
      <match url="(.*)" ignoreCase="true" />
      <conditions logicalGrouping="MatchAll">        
        <add input="{HTTP_HOST}" negate="true" pattern="^www\." />
      </conditions>
      <action type="Redirect" url="http://www.{HTTP_HOST}{HTTP_URL}"  appendQueryString="false" redirectType="Permanent" />
</rule>

Giải pháp là nhận xét ra quy tắc khi chạy trong studio trực quan hoặc thêm một điều kiện:

<add input="{HTTP_HOST}" negate="true" pattern="^localhost" />

2

Giả sử bạn đang chạy IIS Express với SSL Enabled tùy thuộc vào cài đặt của bạn, bạn sẽ phải đặt Chứng chỉ phát triển IIS Express của mình (Được cấp cho "localhost" / Được cấp bởi "localhost") trong [Máy ​​tính cục bộ \ Cá nhân \ Chứng chỉ] hoặc [Máy ​​tính cục bộ \ Chứng nhận gốc đáng tin cậy \ Chứng chỉ]. Một trong số đó sẽ hoạt động. (Sử dụng Windows 10 + VS2015). HTH


Việc thêm Chứng chỉ phát triển IIS Express trong Máy tính cục bộ \ Chứng chỉ gốc đáng tin cậy \ Chứng chỉ đã thực hiện công việc cho tôi. Cảm ơn! (Đối với bất kỳ ai khác, trong trường hợp của tôi, tôi đã có chứng chỉ về Máy tính cục bộ \ Cá nhân \ Chứng chỉ)
David Aleu

1

Kiểm tra tệp web.config để tìm các mục nhập không hợp lệ. Ví dụ: có thẻ "entityFramework" ở đó gây ra sự cố này cho tôi.


1

Tôi đã gặp sự cố này khi chuyển đổi cài đặt và đã tắt tùy chọn " Bật xác thực ẩn danh " trong Dự án> Thuộc tính> Gỡ lỗi. Đảm bảo rằng nó đã được bật. Đóng và khởi chạy lại dự án, sau đó thử lại. Hi vọng điêu nay co ich.


Tôi đã gặp vấn đề tương tự, nhưng thay vì chỉ phải bật ẩn danh, tôi phải bật xác thực ẩn danh hoặc cửa sổ. Nếu cả hai đều sai, tôi đã nhận lỗi.
birken 25

1

Tôi đã sử dụng Phương pháp tiếp cận mã đầu tiên RC1 và EF. Ý tưởng tốt để bắt đầu điều tra là chạy dự án với tùy chọn: "Bắt đầu dự án mà không gỡ lỗi" (Ctrl + F5). Sau đó, tôi nhận được lỗi có ý nghĩa hơn đối với tôi: "Không thể đọc phần cấu hình 'entityFramework' vì nó thiếu phần khai báo." Nó không hoạt động với tôi do tệp web.config.


1
  1. Cập nhật dnvm
  2. Thay đổi phiên bản sdk global.json làm mặc định của dnvm
  3. Không cần phải chạm vào project.json hoặc project.lock.json

0

Khi nâng cấp từ beta7 -> beta8, tôi gặp sự cố này và các đề xuất do Ben M và Domysee cung cấp đã phù hợp với tôi. Tuy nhiên, một trong những đồng nghiệp của tôi vẫn gặp sự cố khi chạy dự án dnxcore50chỉ nhắm mục tiêu của chúng tôi . Nếu bạn chắc chắn rằng bạn đã chạy các lệnh sau:

dnvm install 1.0.0-beta8 -r coreclr
dnvm install 1.0.0-beta8 -r coreclr -arch x86

Đặc biệt đó là lệnh thứ hai đã sửa nó trên máy của anh ấy. Bạn cũng có thể kiểm tra kỹ thư mục này có chứa dnx.exe:

%userprofile%\.dnx\runtimes\dnx-coreclr-win-x86.1.0.0-beta8\bin

0

Tôi vừa phát hiện ra một vấn đề nữa gây ra điều này!

web.configtrong gốc dự án có một số quy tắc viết lại URL IIS tinh vi để thực thi HTTPS. Loại bỏ các quy tắc đó đã giải quyết được vấn đề.


0

Có rất nhiều thứ có thể gây ra lỗi này. Dưới đây là một số hiệu quả đối với tôi:

  1. Chỉ cần xóa web.configtrong wwwrootthư mục của bạn . Nó sẽ được tạo lại một cách chính xác khi biên dịch.
  2. Nếu bạn đang cố gắng sử dụng SSLvà trong của bạn IIS Expressvà di chuyển của bạn SSL Certvào Trusted Root Certification Authoritiesthư mục không hoạt động. Trong Debugtab của Propertiesdự án bạn đang cố gắng chạy. Hãy thử bỏ nhấp vào Enable SSLhộp kiểm và sau đó nhấp lại vào hộp kiểm để bật nó và nhận một cổng khác. Bạn có thể phải làm điều này một vài lần.

0

Một giải pháp tiềm năng khác
Đối với bất kỳ ai chơi với cài đặt SSL, tôi thấy chỉ cần thay đổi cổng SSL trong launchSettings.jsontệp thành một cổng lân cận khác đã giải quyết được vấn đề.

FYI, tôi không thể tìm thấy bất kỳ thứ gì trên máy bằng cổng gốc cũng như không gặp lỗi cổng đang sử dụng.

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.