簡體   English   中英

將Cowboy升級到Cowboy2時出現錯誤

[英]Error coming while upgrading cowboy to cowboy2

我有與葯劑配合使用的長生不老葯應用程序(沒有Phoenix),我正在嘗試將其從牛仔升級到Cowboy2。 我正在使用VS代碼進行開發,運行服務器時不斷出現以下錯誤

    ** (Mix) Could not start application ok_api: exited in: 
OkApi.start(:normal, [])
    ** (EXIT) an exception was raised:
    ** (FunctionClauseError) no function clause matching in :proplists.get_value/3
        (stdlib) proplists.erl:215: :proplists.get_value(:num_acceptors, %{max_connections: 16384, num_acceptors: 100, socket_opts: [port: 4001]}, 10)
        (ranch) /Users/ok/Documents/migration/ok_api/deps/ranch/src/ranch.erl:116: :ranch.child_spec/5
        (plug_cowboy) lib/plug/cowboy.ex:183: Plug.Cowboy.child_spec/1
        (ok_api) lib/ok_api.ex:92: OkApi.start/2
        (kernel) application_master.erl:277: :application_master.start_it_old/4

這是我的孩子配置

children = [
 Plug.Cowboy.child_spec(scheme: :http, plug: OkApi.Router, options: [port: 4001])
 ]

我的mix.lock文件中有這兩個版本

"plug": {:hex, :plug, "1.7.1", "8516d565fb84a6a8b2ca722e74e2cd25ca0fc9d64f364ec9dbec09d33eb78ccd", [:mix], [{:mime, "~> 1.0", [hex: :mime, optional: false]}, {:plug_crypto, "~> 1.0", [hex: :plug_crypto, optional: false]}]},
"plug_cowboy": {:hex, :plug_cowboy, "2.0.1", "d798f8ee5acc86b7d42dbe4450b8b0dadf665ce588236eb0a751a132417a980e", [:mix], [{:cowboy, "~> 2.5", [hex: :cowboy, optional: false]}, {:plug, "~> 1.7", [hex: :plug, optional: false]}]},

應用正在順利編譯,但在運行時只會出現此錯誤。 請幫忙。

Cowboy更新到版本2時 ,請確保已將ranchranch_proxy_protocol都顯式更新到現代版本。 通常把線

{:ranch, "~> 1.7"}

放入mix.exs文件的deps部分將解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM