OwinStartup ไม่ยิง


351

ฉันมีรหัสการตั้งค่า OwinStartup ทำงานได้อย่างสมบูรณ์และหยุดทำงาน น่าเสียดายที่ฉันไม่แน่ใจว่าสิ่งที่ฉันทำเพื่อหยุดทำงานและฉันมีเวลายากมากที่จะหามัน

เพื่อให้แน่ใจว่าฉันมีพื้นฐานครอบคลุมฉันตรวจสอบสองเท่าเพื่อให้แน่ใจว่าฉันมี

[assembly:OwinStartup(typeof(WebApplication.Startup))] 

กำหนดค่าแอตทริบิวต์ไว้อย่างถูกต้องและตรวจสอบให้แน่ใจว่าฉันไม่มี appSetting for owin: AutomaticAppStartup ที่ตั้งค่าเป็นเท็จดังนั้นฉันจึงตั้งค่าให้เป็นจริงเพื่อความปลอดภัยเนื่องจากไม่มีอะไรมาก่อน

<add key="owin:AutomaticAppStartup" value="true" />

ฉันยังได้ลองเรียกใช้การตั้งค่าแอพโดยเฉพาะ:

<add key="owin:appStartup" value="WebApplication.Startup" />

ก่อนที่จะหยุดทำงานฉันอัพเกรด Microsoft.Owin.Security NuGet แพ็คเกจเป็น 2.0.2 ดังนั้นฉันจึงลองเปลี่ยนเป็น 2.0.1 (นั่นเป็นความเจ็บปวด) แต่ก็ไม่ได้เปลี่ยนแปลงอะไรเลย ฉันมี WebActivator ติดตั้งอยู่ในโครงการและกำลังใช้สิ่งนั้นเพื่อบู๊ตสิ่งอื่น ๆ แต่ฉันได้ทดสอบว่าในเทมเพลต WebApplication ใหม่และทำงานได้ที่นั่นดังนั้นฉันจึงไม่คิดว่านั่นเป็นผู้ร้าย

ฉันยังลองลบคลาสเริ่มต้นของฉันและใช้ Visual Studio เพื่อเพิ่มคลาสใหม่โดยใช้ประเภทคลาสเริ่มต้นของ OWIN ในเพิ่มรายการใหม่และนั่นก็ไม่ได้ถูกเรียกเช่นกัน ต่อไปฉันลองเพิ่มคลาสการเริ่มต้นที่สองเนื่องจากฉันรู้ว่ามันจะทำให้เกิดข้อยกเว้นถ้ามีการกำหนดแอตทริบิวต์ของ OwinStartup มากกว่าหนึ่งรายการ แต่มันไม่ได้เป็นการยกเว้นข้อยกเว้นใด ๆ

ไม่แน่ใจว่าจะลองอะไรอีก ความคิดใด ๆ

ปรับปรุง

ปรากฎว่า Resharper ลบการอ้างอิงถึง Microsoft.Owin.Host.SystemWeb เมื่อฉันใช้เพื่อลบการอ้างอิงที่ไม่ได้ใช้


37
คุณมีแพ็คเกจ Microsoft.Owin.Host.Systemweb ในแอปพลิเคชั่นนี้หรือไม่ ตรวจสอบให้แน่ใจว่า dll นี้เป็นส่วนหนึ่งของโฟลเดอร์ถังขยะด้วยหรือไม่
Praburaj

1
นั่นมัน ขอบคุณมาก. ฉันคิดว่าสิ่งที่เกิดขึ้นคือฉันใช้ Resharper เพื่อลบการอ้างอิงที่ไม่ได้ใช้ในบางจุดและไม่คิดว่าจำเป็นต้องมี หากคุณต้องการที่จะนำคำตอบนี้ไปใช้ฉันจะทำเครื่องหมายว่าเป็นทางออก ขอบคุณสำหรับความช่วยเหลือ
Jeff Treuting

2
Jeff, ReSharper ลบการอ้างอิง "unused" ไปยัง Microsoft.Owin.Host.Systemweb - คุณกำลังพูดถึงคำสั่ง "using" หรือไม่? ไฟล์ใด Startup.cs
vkelman

4
ฉันมีปัญหาเดียวกันทุกประการ resharper ลบการอ้างอิงถึง Microsoft.Owin.Host.SystemWeb ฉันแก้ไขโดยเปิดหน้าต่างคอนโซลตัวจัดการแพคเกจใน Visual Studio และเรียกใช้คำสั่งต่อไปนี้ PM> การปรับปรุงแพคเกจ - ติดตั้ง Microsoft.Owin.Host.SystemWeb
Joe King

1
เป็นการอัปเดตถึงคำอธิบายของ @ JoeKing ด้านบน PM Console จะไม่อัปเดตเป็น "ไม่พบ" ฉันต้องไปติดตั้งใหม่ PM> การติดตั้งแพคเกจ Microsoft.Owin.Host.SystemWeb
Morvael

คำตอบ:


769

ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งMicrosoft.Owin.Host.SystemWebแพคเกจในโครงการ แพคเกจนี้จำเป็นสำหรับการตรวจจับการเริ่มต้นในแอปพลิเคชันที่โฮสต์ IIS สำหรับข้อมูลเพิ่มเติมคุณสามารถดูบทความนี้


4
บางคนอาจเริ่มการตรวจจับของ Owin Startup โดยทางโปรแกรมภายในไลบรารีที่มีการใช้งาน / มีการห่อหุ้มด้วย Owin สมมติว่าเรามีสถานที่ที่จะเรียกมัน ( PreApplicationStartMethod ) โดยไม่ต้องมีการอ้างอิงโดยตรงของ Microsoft เรากระตุ้น Katana ให้โทรโดยเฉพาะได้Startup.Configuration(IAppBuilder)อย่างไร
Jason Kleban

7
กำลังพยายามสร้างแอปพลิเคชันตั้งแต่เริ่มต้นโดยไม่ต้องใช้เทมเพลต MVC จบลงด้วยความสิ้นหวัง 2 ชั่วโมง
mkvlrn

1
เมื่อฉันตะโกน resharper เป็นนักฆ่าการผลิตที่ใหญ่ที่สุดที่ฉันมีปัญหานี้และไม่สามารถคิดออกเป็นเวลาหนึ่งสัปดาห์ทำไมเว็บ API หยุดทำงาน Resharper อีกหลักฐานหนึ่งคือการฆ่าผลผลิตของฉัน
Ivan G.

5
การขออ้างอิงไลบรารีที่ไม่ได้ใช้จริงในระหว่างการรวบรวมเป็นการออกแบบที่ไม่ดีโดย Microsoft! Resharper พยายามอย่างดีที่สุด แต่ก็ไม่มีอาวุธต่อต้านการตัดสินใจที่ไม่ดีเช่นนี้
ps_ttf

22
น่าอัศจรรย์ ทุกครั้งที่ฉันเพิ่มไฟล์เริ่มต้น OWIN ฉันมีปัญหานี้ และทุกครั้งที่ฉันลืมสาเหตุและท้ายคำตอบนี้
โทเบียส

71

หากคุณอัปเกรดจาก MVC เวอร์ชันที่เก่ากว่าต้องแน่ใจว่าไม่มี

  <add key="owin:AutomaticAppStartup" value="false" />

web.configในของคุณ มันจะระงับการเรียกตรรกะการเริ่มต้น

แทนที่จะเปลี่ยนเป็น true

  <add key="owin:AutomaticAppStartup" value="true" />

ฉันรู้ว่าคุณพูดถึงเรื่องนี้แล้ว แต่บางครั้งคน (อย่างฉัน) ไม่ได้อ่านคำถามทั้งหมดและเพียงข้ามไปที่คำตอบ ...

อยู่ที่ไหนสักแห่งในเส้นทาง - เมื่อฉันอัพเกรดเป็น MVC 5 สิ่งนี้ได้เพิ่มและฉันไม่เคยเห็นมันจนถึงวันนี้


มีปัญหาเดียวกันเมื่อใช้คลาสเริ่มต้นของ Owin ในโครงการ mvc แบบเก่า การสลับค่าเป็นเคล็ดลับ!
Darxtar

51

คำตอบทางเลือกสำหรับปัญหาดั้งเดิมที่กล่าวถึง - Owin "not firing" ในกรณีของฉันฉันใช้เวลาหลายชั่วโมงคิดว่ามันไม่ได้เป็นการยิงเพราะไม่สามารถกำหนดจุดพักได้

เมื่อทำการดีบักการเริ่มต้น OWIN ใน visual studio

  • IIS Express - การเรียกใช้ "F5" จะทำให้รหัสเริ่มต้น OWIN หยุดทำงาน

  • IIS - การรัน "F5" จะไม่หยุดจนกว่าจะโหลดรหัส OWIN (และ global.asax) หากคุณแนบ W3P.exe คุณจะสามารถก้าวเข้าไปได้


2
คุณพูดถูก! เป็นเพียงดีบักเกอร์ Visual Studio 2013 ไม่หยุดพักจุดภายในคลาสเริ่มต้น - ในขณะที่ทำงานภายใต้ IIS ในเครื่อง แปลก.
vkelman

4
คุณสามารถอธิบายเพิ่มเติมเกี่ยวกับ 'attach to W3P.exe' ได้หรือไม่ ฉันมีจุดพักเบรกเดียวกันกับที่ไม่โดน IIS แต่ถูกตีด้วย IISExpress ฉันได้หยุดแอปพลิเคชันซึ่งเชื่อมต่อกับ w3wp.exe จากนั้นเรียกดูไปยังโลคัลโฮสต์ของฉัน แต่ก็ยังไม่ได้รับผลกระทบ ฉันพลาดอะไรไปหรือเปล่า
ฌอน

ฉันไม่สามารถแนบไปกับอินสแตนซ์ที่ทำงานอยู่ของแอปของฉันได้เช่นกันแม้ว่าฉันเชื่อว่าฉันสามารถทำเช่นนั้นมาก่อน ฉันพยายามเปิดแอปในเบราว์เซอร์จากนั้นใน VS2013 เพื่อใช้ "Debug-> Attach to Process" จากนั้นโหลดหน้าเว็บอีกครั้งในเบราว์เซอร์ VS ไม่หยุด ฉันรู้ว่าการเริ่มต้นของ OWIN นั้นกำลังดำเนินการ: ฉันใช้การบันทึกบางอย่างเพื่อวัตถุประสงค์ในการแก้ไขปัญหา มันเหมือนย้อนกลับไปในยุคมืดของการพิมพ์การดีบักระดับกลาง
vkelman

2
เพื่อนร่วมงานเพิ่งแสดงให้ฉันเห็นว่าใน iis ถ้าคุณดับเบิลคลิกที่กลุ่มแอพเริ่มต้นและเปลี่ยนโหมดไพพ์ไลน์ที่ได้รับการจัดการให้เป็นแบบคลาสสิกดีบักเกอร์จะแตกเมื่อเริ่มต้น ฉันวิ่งหลังจากนั้นและได้รับข้อผิดพลาดที่บอกว่าแอปพลิเคชันต้องทำงานใน Integrated ดังนั้นฉันจึงต้องเปลี่ยนกลับ แต่อย่างน้อยก็สามารถเห็นได้ว่ามันหยุดอยู่ที่นั่น
Matt Bodily

มีสองสิ่งที่นี่ "w3wp.exe" ยึดตามกลุ่มแอปพลิเคชัน คุณควรจะสามารถดีบัก global.asax และเป็นหนี้หากใบสมัครของคุณไม่ใช่ใบสมัครแรกที่คุณขอในการเริ่มต้นกระบวนการนั้น เช่นขอแอปพลิเคชันอื่นในกลุ่มแอปพลิเคชัน "แนบกับ w3wp.exe" แล้วขอแอปพลิเคชันที่คุณพยายามแก้ไข
Brett Caswell

26

หากคุณมีปัญหาในการดีบักรหัสในStartupชั้นเรียนฉันมีปัญหานี้เช่นกัน - หรือฉันคิดว่าฉันทำ รหัสกำลังถูกยิง แต่ฉันเชื่อว่ามันเกิดขึ้นก่อนที่ตัวดีบักจะแนบดังนั้นคุณจึงไม่สามารถกำหนดจุดพักบนโค้ดและดูว่าเกิดอะไรขึ้น

คุณสามารถพิสูจน์ได้โดยการโยนข้อยกเว้นในConfigurationวิธีการStartupเรียน


นี่คือสิ่งที่เกิดขึ้น มีวิธีแก้ปัญหาในการทำให้คลาสเริ่มต้นเริ่มทำงานหลังจากดีบักเกอร์แนบหรือไม่
Tom Schreck

ฉันจะรู้วิธีโยนข้อยกเว้นในวิธีการกำหนดค่าได้ไหม
Karthikeyan

1
เพิ่มบรรทัดนี้ใน Startup.cs เพื่อพิสูจน์ว่าถูกดำเนินการแล้ว: System.IO.File.WriteAllText (@ "c: \ temp \ startup.txt", "เริ่มต้น");
RaoulRubin

1
@Karthikeyan - เพิ่มบรรทัดนี้หลังจากก่อนหน้า (ไม่สำคัญ) ConifureAuth (แอป) บรรทัด - โยนข้อยกเว้นใหม่ ("Hello");
Francis Rodgers

ทำให้ System.Threading.Sleep บรรทัดแรก (10_000) จึงจะรอนานพอสำหรับการดีบักแนบก่อนดำเนินการต่อ (ปรับได้ตามต้องการ)
James Gray

16

การแก้ปัญหาเคล็ดลับ

หากการดีบักไม่ทำงานให้ลองใช้ IIS Express หรือลองใช้วิธีการด้านล่างสำหรับ IIS ในเครื่อง

ใช้ IIS ท้องถิ่น

ด้วยเหตุผลบางอย่างวิธีนี้ช่วยให้การดีบักของวิธีนี้:

  1. ขอเว็บเพจ
  2. แนบกับกระบวนการ w3wp.exe
  3. แตะไฟล์ web.config
  4. ขอเว็บเพจ

เคล็ดลับพิเศษ

อาจทำเช่นนี้จะล้างแคช:

  1. ใน web.config เพิ่มแอ็ตทริบิวต์ optimizationCompilations ด้วยค่า false

    <compilation debug = "true" ... optimizationCompilations = "false">

  2. เรียกใช้เว็บไซต์

  3. เลิกทำการเปลี่ยนแปลงใน web.config

2
สลับการตั้งค่าใช้optimizeCompilations="false"งานได้สำหรับฉัน
barh

คุณบันทึกวันของฉัน! optimizationCompilations = "false" ใช้ได้สำหรับฉัน
Vostrugin

OptimCompilations บันทึกวันของฉัน ขอบคุณ :)
Bogdan Stojanovic

13

ฉันมีปัญหาคล้ายกันกับเรื่องนี้และการล้างไฟล์ ASP.NET ชั่วคราวได้แก้ไข หวังว่านี่จะช่วยใครซักคน


4
นี่เป็นอีกคำตอบหนึ่งที่ให้รายละเอียดเพิ่มเติมเล็กน้อยเกี่ยวกับตำแหน่งที่จัดเก็บไฟล์เหล่านี้: stackoverflow.com/questions/16137457/…
Sam Storie

1
ฉันใช้ IIS EXPRESS และหน้าต่าง 8: ลบที่นี่: C: \ Users \ ชื่อผู้ใช้ของคุณ \ AppData \ Local \ Temp \ Temporary ASP.NET Files \ vs
หมาป่าสีเทา

ขอขอบคุณที่ผมสังเกตเห็นคำตอบนี้เพราะผมมีข้อผิดพลาดก่อนหน้านี้หนึ่งเกี่ยวกับสิ่งที่ล็อกไฟล์ในโฟลเดอร์แฟ้มชั่วคราวของ ASP.NET
Elger Mensonides

ฉันดิ้นรนกับสิ่งนี้ตลอดทั้งวันและในที่สุดมันก็ใช้ได้กับฉัน หลังจากล้างTemporary ASP.NET Filesเนื้อหาของโฟลเดอร์และการเริ่มต้นของ Owin ถูกเรียกใช้
Harsh Baid

11

ผมมีปัญหาเหมือนกัน. แพคเกจ Microsoft.Owin.Host.SystemWeb ถูกติดตั้ง แต่ในระหว่างการติดตั้ง NuGet ไม่สามารถเพิ่ม dll เป็นข้อมูลอ้างอิงได้ด้วยเหตุผลบางประการ ตรวจสอบให้แน่ใจว่าโครงการของคุณมีการอ้างอิงนั้น หากไม่ใช่คุณสามารถลองติดตั้งใหม่ได้:

update-package Microsoft.Owin.Host.SystemWeb -reinstall

ฉันมีข้อผิดพลาดเช่นด้านล่างเมื่อติดตั้งใหม่ แต่มันก็ทำงานได้:

การเรียกระบบล้มเหลว (ข้อยกเว้นจาก HRESULT: 0x80010100 (RPC_E_SYS_CALL_FAILED))


ฉันต่อสู้มาระยะหนึ่งแล้วและนี่คือสิ่งที่แก้ไขปัญหาของฉัน ฉันมีการอ้างอิง nuget ใน packages.config แต่ csproj ของฉันไม่มีการอ้างอิง
Zackary Geers

1
ในกรณีของฉันฉันไม่ได้ติดตั้งแพ็คเกจเลย ใช้งานแพคเกจติดตั้ง Microsoft.Owin.Host.SystemWeb แก้ปัญหาของฉันได้ ขอบคุณสำหรับคำใบ้
J. Horn

2

ในกรณีของฉันพูลโปรแกรมประยุกต์ IIS ไม่ได้ถูกตั้งค่าเป็น v4 มันเป็น v2

เปลี่ยน AppPool เป็น v4 และทุกอย่างก็โอเค


2

ฉันมีปัญหาเดียวกันเมื่อฉันเพิ่ม Owin ในโครงการเว็บที่มีอยู่ ในที่สุดฉันก็พบว่ามีปัญหาเกิดจากสิ่งต่อไปนี้ในไฟล์ web.config

<assemblies>
  <remove assembly="*" />
  <add assembly="System.Web.Mvc" />
  <add assembly="System.Web.WebPages" />

   ...

</assemblies>

แอสเซมบลี remove = "*" เป็นสาเหตุของปัญหา เมื่อฉันลบบรรทัดนี้รหัสเริ่มต้นของ Owin จะทำงาน ในที่สุดฉันก็เปลี่ยนเป็นสิ่งต่อไปนี้และทำงานได้อย่างสมบูรณ์

<assemblies>
  <remove assembly="*" />
  <add assembly="Microsoft.Owin.Host.SystemWeb" />
  <add assembly="System.Web.Mvc" />
  <add assembly="System.Web.WebPages" />
  <add assembly="System.Web.Helpers" />
...
</assemblies>

1
ฉันมีโครงการ sitecore และในไฟล์ web.config ของฉันไม่มีแท็ก <remove assembly = * "/> แต่เพิ่ม <add assembly =" Microsoft.Owin.Host.SystemWeb "/> แก้ไขปัญหาของฉัน
burki

ขอบคุณ @burki เพราะความคิดเห็นของคุณฉันบังคับตัวเองให้ลองใช้วิธีนี้และมันก็ใช้ได้กับเราเช่นกัน! คลาสเริ่มต้นของ Owin ไม่เริ่มทำงานตั้งแต่การอัปเดต VS เป็น 15.9.9
เดวิด

ขอบคุณมาก! นี้แก้ไขได้ฉันต้องเพิ่ม follwing: <assemblies> <ลบชุดประกอบ = "*" /> <เพิ่มชุดประกอบ = "myapplication" /> <เพิ่มชุดประกอบ = "Microsoft.Owin.Host.SystemWeb" /> <เพิ่มชุดประกอบ = "Microsoft.Owin.Security" /> <เพิ่มชุดประกอบ = "System.Web.Mvc" /> <เพิ่มชุดประกอบ = "System.Web.WebPages" /> <เพิ่มชุดประกอบ = "System.Web.Helpers" /> < / assemblies>
trykyn

1

ในกรณีของฉันบางคนเส้นทางการส่งออกของเว็บไซต์ของฉันถูกเปลี่ยนโดย IIS Express ถึงแม้ว่าจะไม่โหลด OWIN และการติดตั้งจะไม่ได้รับผลกระทบแน่นอน หลังจากที่ฉันตั้งค่าเส้นทางผลลัพธ์เป็น "bin \" ก็จะทำงานได้ดี


1

ในกรณีของฉันชุด Microsoft.Owin.Host.SystemWeb นี้มีอยู่ในโครงการ

แต่แท็กด้านล่างสองแท็กจะไม่ปรากฏใน web.config

<add key="owin:AutomaticAppStartup" value="true" />
<add key="owin:appStartup" value="namespace.className.methodName" />

หลังจากเพิ่มพวกเขามันทำงานได้อย่างราบรื่น


1

ในกรณีของฉัน web.config ของฉันมี

<authorization>
  <allow users="?" />
</authorization>

เพื่อบังคับให้ถอยกลับไปหา Owin ฉันต้องการให้มันเป็น

<authorization>
  <deny users="*" />
</authorization>

0

ฉันยุ่งกับคำแนะนำมากมายในโพสต์นี้

ฉันมีสิ่งต่อไปนี้ แต่ยังไม่สามารถลงจอดบนจุดพัก การโยนข้อยกเว้นได้รับการพิสูจน์ว่ามีการป้อนรหัส

<appSettings>
...
  <add key="owin:AutomaticAppStartup" value="true" />
  <add key="owin:appStartup" value="SSOResource.Startup, SSOResource" />
...
</appSettings>

ในที่สุดจากความสิ้นหวังฉันมองไปที่คุณสมบัติของโครงการ -> และจากนั้นในส่วนของเว็บฉันยังตรวจสอบกล่องกาเครื่องหมาย NATIVE CODE (ควรตรวจสอบ ASP.NET แล้ว)

ในที่สุดก็แก้ไขให้ฉัน

หมายเหตุ: ฉันใช้ Visual Studio 2017 Professional


0

ฉันไม่แน่ใจว่าสิ่งนี้จะยังคงช่วยใครบางคน แต่ฉันได้ทำวิธีแก้ปัญหาทั้งหมดข้างต้น (และจากการโพสต์อื่น ๆ ) เพื่อประโยชน์

สิ่งที่แก้ไขปัญหาในตอนท้ายของฉันคือการใส่แบ็กสแลชไปที่จุดสิ้นสุดของค่า RedirectUri ใน web.config (บ้าฉันรู้!) RedirectUri เป็นพารามิเตอร์ใน UseOpenIdConnectAuthentication

ดังนั้นแทนที่จะ:

<add key="ida:RedirectUri" value="https://www.bogussite.com/home" />

ทำเช่นนี้:

<add key="ida:RedirectUri" value="https://www.bogussite.com/home/" />

และอัปเดต URL ตอบกลับบนการตั้งค่าแอป Azure ด้วย

วิธีนี้ทำให้การเริ่มต้นทำงานตามที่คาดไว้ (อาจล้างแคชบางส่วน) และจุดพักกำลังเริ่มทำงาน

FYI ฉันกำลังสร้างแบบจำลองรหัสของฉันจากที่นี่: https://github.com/microsoftgraph/aspnet-connect-sample


0

หลังจากแปลงไลบรารีคลาสเป็นโครงการเว็บแอปพลิเคชันฉันพบสิ่งนี้และกลายเป็นหัวแข็ง ปรากฏว่าใน.csProjไฟล์ของฉันฉันมีสิ่งนี้:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  <DebugSymbols>true</DebugSymbols>
  <DebugType>full</DebugType>
  <Optimize>false</Optimize>
  <OutputPath>bin\Debug\</OutputPath>
  <DefineConstants>DEBUG;TRACE</DefineConstants>
  <ErrorReport>prompt</ErrorReport>
  <WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  <DebugType>pdbonly</DebugType>
  <Optimize>true</Optimize>
  <OutputPath>bin\Release\</OutputPath>
  <DefineConstants>TRACE</DefineConstants>
  <ErrorReport>prompt</ErrorReport>
  <WarningLevel>4</WarningLevel>
</PropertyGroup>
  • ดังนั้นการสร้าง dll ต่างๆให้อยู่ในโฟลเดอร์ย่อยของ bin-folder (ซึ่ง ifc. จะไม่ทำงาน) วิธีการแก้ปัญหาคือการเปลี่ยนทั้งข้อความเนื้อหาสำหรับเพียงOutputPathbin\

0

สำหรับฉันมันเป็นเพราะพวกเขาไม่ได้อยู่ใน namespace เดียวกัน หลังจากฉันลบ AppStart ออกจาก "project.Startup.AppStart" และให้ทั้ง Startup.cs และ Startup.Auth.cs ด้วย namespace "project.Startup" ทุกอย่างกลับมาทำงานได้อย่างสมบูรณ์

ฉันหวังว่ามันจะช่วย!


0

หากคุณเห็นปัญหานี้กับ IIS hosting แต่ไม่ใช่เมื่อทำการดีบัก F5 ให้ลองสร้างแอปพลิเคชันใหม่ใน IIS

สิ่งนี้แก้ไขได้สำหรับฉัน (windows 10) ในที่สุดฉันก็ลบแอปพลิเคชัน IIS "ไม่ดี" และสร้างขึ้นใหม่เหมือนกันด้วยชื่อเดียวกัน


0

ฉันคิดว่าสิ่งที่บางคนพยายามที่จะได้รับไปคือถ้าคุณต้องการให้เซิร์ฟเวอร์ OWIN ของคุณ "มีชีวิตขึ้นมา" โดยทางโปรแกรมคุณจะต้องโทรหาสิ่งนี้:

using Microsoft.Owin.Hosting;

    IDisposable _server = WebApp.Start<StartupMethod>("http://+:5000"); 
              // Start Accepting HTTP via all interfaces on port 5000

เมื่อคุณทำการโทรออกนี้คุณจะเห็นการเรียกใช้ StartupMethod () เริ่มทำงานในดีบักเกอร์


0

ฉันพบว่าบทความต่อไปนี้มีประโยชน์มาก:

https://weblog.west-wind.com/posts/2015/Apr/29/Adding-minimal-OWIN-Identity-Authentication-to-an-Existing-ASPNET-MVC-Application#MinimalCodeSummary

ในกรณีของฉันฉันต้องตั้งค่าต่อไปนี้ก่อนที่การรับรองความถูกต้องของ Owin จะทำงานแทนการตรวจสอบ windows:

<system.web>   
    <authentication mode="None" />   
<system.web>

0

สิ่งนี้ใช้ได้กับฉัน:

เพิ่มโหมดการรับรองความถูกต้อง = "ไม่มี"

<system.web>
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime targetFramework="4.6.1" />
      <authentication mode="None" /><!--Use OWIN-->
  </system.web>

-3

เพิ่ม OWIN Auth Class ก่อนจากนั้นจึงเปิดใช้งาน คีย์ OWIN: AutomaticAppStartupใน web.config เช่น ตอนนี้มันจะยิง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.