ฉันจะเปลี่ยนพอร์ต IIS Express สำหรับไซต์ได้อย่างไร


111

ฉันต้องการเปลี่ยนหมายเลขพอร์ตที่เว็บไซต์ของฉันทำงานในขณะที่แก้ไขข้อบกพร่องจาก Visual Studio ฉันใช้ Visual Studio 2012 และฉันใช้ ASP.NET MVC 4 สำหรับโปรเจ็กต์ของฉันฉันต้องการเปลี่ยนพอร์ต พอร์ตสุ่มหรือคงที่ทุกคนจะทำงานเพียงแค่ต้องการเปลี่ยนพอร์ต

คำตอบ:


130

เพื่อระบุพอร์ตสำหรับโปรเจ็กต์เว็บแอปพลิเคชันที่ใช้ IIS Express

  1. ในโซลูชัน Explorer ให้คลิกขวาที่ชื่อของแอปพลิเคชันจากนั้นเลือกคุณสมบัติ คลิกแท็บเว็บ

  2. ในส่วนเซิร์ฟเวอร์ภายใต้ใช้ Local IIS Web server ในกล่อง Project URL เปลี่ยนหมายเลขพอร์ต

  3. ทางด้านขวาของกล่อง Project URL ให้คลิก Create Virtual Directory จากนั้นคลิก OK

  4. ในเมนูไฟล์คลิกบันทึกรายการที่เลือก

  5. ในการตรวจสอบการเปลี่ยนแปลงให้กด CTRL + F5 เพื่อเรียกใช้โครงการ หมายเลขพอร์ตใหม่จะปรากฏในแถบที่อยู่ของเบราว์เซอร์

จากHow to: ระบุ Port สำหรับ Development Server ( สำรองข้อมูลarchive.org ที่นี่ )


15
ใช้ไม่ได้กับเว็บไซต์ สำหรับโครงการ Web Application เท่านั้น
Supersharp

3
ไม่มีแท็บเว็บที่นี่ ... คุณคงคิดว่าในปี 2017 สิ่งนี้จะไม่เป็นปัญหาอีกต่อไป .. หรืออย่างน้อยที่สุดเราก็ควรจะสามารถเปลี่ยนพอร์ตได้โดยไม่ต้องใช้เวทมนตร์
calcazar

Visual Studio 2015 ไม่มีตัวเลือก (ASP.NET Empty Web Site) .. ทำอย่างไร?
KingRider

ฉันทำทั้งหมดนี้แล้วยกเว้นคลิกปุ่มสร้างไดเรกทอรีเสมือน การทำเช่นนั้นทำให้เกิดความแตกต่าง ตอนนี้มันใช้งานได้ แต่ทำไมถึงจำเป็น?
Rod

ถ้าคุณทำเช่นนี้คุณไม่ได้ใช้ IIS Express อีกต่อไป แต่เป็น IIS ในเครื่อง ดังนั้นเพียงไปที่แท็บเว็บในคุณสมบัติโครงการและแก้ไขพอร์ตตามที่คุณต้องการ
VladT

69

นี่เป็นวิธีการแบบแมนนวลเพิ่มเติมที่ใช้ได้กับทั้งโครงการเว็บไซต์และโครงการแอปพลิเคชันเว็บ (คุณไม่สามารถเปลี่ยน URL โครงการจากภายในโครงการ Visual Studio สำหรับเว็บไซต์)

โครงการ Web Application

  1. ใน Solution Explorer คลิกขวาที่โปรเจ็กต์แล้วคลิกยกเลิกการโหลดโปรเจ็กต์

  2. ไปที่ไฟล์IIS Express ApplicationHost.config โดยค่าเริ่มต้นไฟล์นี้จะอยู่ใน:

    %userprofile%\Documents\IISExpress\config

    ในเวอร์ชัน Visual Studio และโครงการ Web Application ล่าสุดไฟล์นี้อยู่ในโฟลเดอร์โซลูชันภายใต้[Solution Dir]\.vs\config\applicationhost.config(โปรดทราบว่าโฟลเดอร์. vs เป็นรายการที่ซ่อนอยู่)

  3. เปิดไฟล์ApplicationHost.configในโปรแกรมแก้ไขข้อความ ใน<sites>ส่วนนี้ให้ค้นหาชื่อไซต์ของคุณ ใน<bindings>ส่วนของไซต์ของคุณคุณจะเห็นองค์ประกอบดังนี้:

    <binding protocol="http" bindingInformation="*:56422:localhost" />

    เปลี่ยนหมายเลขพอร์ต (56422 ในตัวอย่างด้านบน) เป็นอะไรก็ได้ที่คุณต้องการ เช่น:

    <binding protocol="http" bindingInformation="*:44444:localhost" />

    โบนัส: คุณสามารถผูกกับชื่อโฮสต์อื่นและทำสิ่งดีๆเช่น:

    <binding protocol="http" bindingInformation="*:80:mysite.dev" />

    แล้วแมปmysite.devไปที่127.0.0.1ในhostsไฟล์ของคุณจากนั้นเปิดเว็บไซต์ของคุณจาก " http://mysite.dev "

  4. ใน Solution Explorer ให้คลิกขวาที่โครงการแล้วคลิก โครงการโหลด

  5. ใน Solution Explorer คลิกขวาที่โครงการและเลือกคุณสมบัติ

    • เลือกแท็บเว็บ

    • ในส่วนเซิร์ฟเวอร์ภายใต้ใช้ Local IIS Web server ในกล่อง Project URL ให้ป้อน URL เพื่อให้ตรงกับชื่อโฮสต์และพอร์ตที่คุณป้อนในไฟล์ApplicationHost.configจากก่อนหน้านี้

    • ทางด้านขวาของกล่อง Project URL ให้คลิก Create Virtual Directory หากคุณเห็นข้อความแสดงความสำเร็จแสดงว่าคุณทำตามขั้นตอนถูกต้องแล้ว

    • ในเมนูไฟล์คลิกบันทึกรายการที่เลือก

โครงการเว็บไซต์

  1. ในโซลูชัน Explorer คลิกขวาชื่อโครงการแล้วคลิกเอาออกหรือลบ ; ไม่ต้องกังวลการดำเนินการนี้จะลบโครงการออกจากโซลูชันของคุณ แต่จะไม่ลบไฟล์ที่เกี่ยวข้องบนดิสก์

  2. ทำตามขั้นตอนที่ 2 จากด้านบนสำหรับโครงการ Web Application

  3. ในโซลูชัน Explorer คลิกขวาที่โซลูชันเลือกเพิ่มจากนั้นเลือกเว็บไซต์ที่มีอยู่ ...... ในกล่องโต้ตอบเพิ่มเว็บไซต์ที่มีอยู่ตรวจสอบให้แน่ใจว่าได้เลือกแท็บ Local IIS แล้ว ภายใต้ไซต์ IIS Express เลือกไซต์ที่คุณเปลี่ยนหมายเลขพอร์ตจากนั้นคลิกตกลง

ตอนนี้คุณสามารถเข้าถึงเว็บไซต์ของคุณจากชื่อโฮสต์ / พอร์ตใหม่ของคุณ


1
ยอดเยี่ยมสิ่งที่จำเป็น ต้องตกปลารอบ ๆ พอร์ตที่ใช้งานได้ แต่นี่เป็นเคล็ดลับขอบคุณ
hobwell

1
ขอบคุณ Saeb. นี้ทำงานได้อย่างสมบูรณ์ สิ่งที่ควรทราบ ... ฉันใช้การควบคุมแหล่งที่มาและหลังจากเพิ่มโครงการเว็บไซต์ของฉันกลับแล้วฉันต้องไปที่ไฟล์> การควบคุมแหล่งที่มา> ขั้นสูง> เปลี่ยนการควบคุมแหล่งที่มาและเชื่อมโยงโครงการของฉันไปยังเซิร์ฟเวอร์ควบคุมแหล่งที่มาอีกครั้ง นี่หมายถึงการเลือกโครงการในรายการและคลิกที่ปุ่ม "ผูก" ถัดจาก "รีเฟรช" ขอบคุณสำหรับคำตอบที่ยอดเยี่ยม
Dirk Strauss

2
คำตอบที่ดี - แทนที่จะ "คลิกขวาที่ชื่อโปรเจ็กต์แล้วคลิกลบหรือลบ" คุณสามารถเลือก "ยกเลิกการโหลดโปรเจ็กต์แทน" จากนั้นแก้ไข applicationhost.config ของคุณอีกครั้งของฉันอยู่ที่ "<path to my solution (.sln) file> \. vs \ config \ applicationhost.config "(โปรดทราบว่าโฟลเดอร์. vs เป็นรายการที่ซ่อนอยู่ดังนั้นเลือกตัวเลือกเพื่อแสดงไฟล์ที่ซ่อนอยู่ใน file explorer ของคุณ)
Paul Gorbas

1
@PaulGorbas ดีใจที่ช่วยคุณได้ โปรดทราบว่าคุณไม่สามารถ "ยกเลิกการโหลด" เว็บไซต์ได้ซึ่งใช้ได้กับเว็บแอปพลิเคชันเท่านั้น
แสบอามินี

2
จะทำให้สิ่งนี้ใช้ได้กับพอร์ต SSL ที่กำหนดเองได้อย่างไร สำหรับพอร์ตใด ๆ ยกเว้น 60233 ฉันได้รับ "หน้านี้ไม่สามารถแสดงได้" ใน Internet Explorer และข้อความที่คล้ายกันในเว็บเบราว์เซอร์อื่น ๆ ใน Windows 7 กำหนดพอร์ต SSL ไว้ที่ใด
MiloDC

18

.Net Core

สำหรับผู้ที่มาที่นี่กำลังมองหาการกำหนดค่านี้ใน. Net coreสิ่งนี้อยู่ในไฟล์lauchSettings.json. เพียงแก้ไขพอร์ตในคุณสมบัติ"applicationUrl"เพียงแค่แก้ไขพอร์ตในทรัพย์สิน

ไฟล์ควรมีลักษณะดังนี้:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:53950/", //Here
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "index.html",
      "environmentVariables": {
        "Hosting:Environment": "Development"
      },
    }
  }
}

หรือคุณสามารถใช้ GUI โดยดับเบิลคลิกใน "คุณสมบัติ" ของโครงการของคุณ

หมายเหตุ: ฉันต้องเปิด VS อีกครั้งเพื่อให้มันใช้งานได้


1
คำตอบที่ยอดเยี่ยม การรีสตาร์ท VS ใช้ได้ผลสำหรับฉัน เห็นได้ชัดว่าProductAgentService.exeบริการของ BitDefender ใช้พอร์ต 50151 ซึ่งขัดแย้งกับพอร์ตเริ่มต้นของ IIS Express
silkfire

6
พอร์ต SSL ถูก จำกัด ไว้ที่ 44300-44399 อาจจะดีที่จะรู้
FatAlbert

16

คลิกขวาที่โครงการ MVC ของคุณ ไปที่คุณสมบัติ ไปที่แท็บเว็บ
เปลี่ยนหมายเลขพอร์ตใน Project Url ตัวอย่าง. localhost: 50645
การเปลี่ยนหมายเลขตัวหนา 50645 เป็นสิ่งอื่นจะเปลี่ยนพอร์ตที่ไซต์ทำงาน
กดCreate Virtual Directoryเพื่อเสร็จสิ้นกระบวนการ

ดูเพิ่มเติม: http://msdn.microsoft.com/en-us/library/ms178109.ASPX

รูปภาพแสดงแท็บเว็บของโครงการ MVC ป้อนคำอธิบายภาพที่นี่


5

หากคุณต้องการเปลี่ยนพอร์ตเนื่องจากมีการใช้งานอยู่แล้ว ทำตามขั้นตอนต่อไปนี้

ใน Visual Studio

  1. คลิกขวาที่ Project Node และ Unload Project
  2. คลิกขวาที่ Project Node และ Edit. csproj
  3. ค้นหาแท็กต่อไปนี้และลบออก
<DevelopmentServerPort>62140</DevelopmentServerPort>
<DevelopmentServerVPath></DevelopmentServerVPath>
<IISUrl>http://localhost:62116/</IISUrl>
  1. กด Ctrl + S เพื่อบันทึกเอกสาร
  2. คลิกขวาที่ Project Node และโหลด Project

มันจะทำงานโดยการเลือกพอร์ตอื่นแบบสุ่ม

สำหรับข้อมูลเพิ่มเติม. กรุณาคลิก


2

การแก้ไขอื่นสำหรับผู้ที่ติดตั้ง IIS:

สร้างเส้นทางบนเซิร์ฟเวอร์ IIS และจัดสรรเว็บไซต์ / แอปของคุณที่นั่น

ไปที่คำแนะนำของโซลูชันของ explorer จากนั้นใช้ iisexpress จากสตูดิโอวิชวลตรงหน้าให้เทียบกับใช้ IIS ส่วนตัวของคุณเอง

กรรมสิทธิ์ของโซลูชัน


2

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


2

หากเรากำลังพูดถึงเว็บไซต์ไม่ใช่เว็บแอปปัญหาของฉันคือโฟลเดอร์. sln จริงอยู่ที่อื่นที่ไม่ใช่เว็บไซต์และฉันไม่ได้สังเกตเห็น มองหาพา ธ . sln จากนั้นหาโฟลเดอร์. vs (hidden) ที่นั่น


0

ฉันเป็นปัญหาเดียวกันกับโครงการ WCF ใน VS2017 เมื่อฉันดีบักมันให้ข้อผิดพลาดเช่นไม่สามารถรับข้อมูลเมตาได้ แต่ปรากฎว่ามีการใช้พอร์ตโดยกระบวนการอื่น ฉันได้ความคิดบางอย่างจากที่นี่และในที่สุดก็หาที่เก็บพอร์ตได้ มี 2 ​​ตำแหน่ง: 1. C: ... ไปยังโฟลเดอร์โซลูชันของคุณ .... vs \ config \ applicationhost.config ภายในคุณจะพบไซต์ที่คุณแก้ไขข้อบกพร่อง ภายใต้ลบที่มีปัญหาพอร์ต 2. C: ... ไปยังโฟลเดอร์โครงการของคุณ ... \ คุณจะเห็นไฟล์ที่มี ProjectName.csproj.user ลบไฟล์นี้

ดังนั้นปิดโซลูชันลบและไฟล์ผู้ใช้ที่กล่าวถึงข้างต้นจากนั้นเปิดโซลูชันใหม่ VS จะค้นหาพอร์ตอื่นที่เหมาะสมสำหรับไซต์


0

ฉันใช้ VS 2019

หากโซลูชันของคุณมีไลบรารีโปรเจ็กต์ / คลาสมากกว่าหนึ่งไลบรารีเป็นต้นคุณอาจไม่เห็นแท็บเว็บเมื่อคลิกที่คุณสมบัติ Solution explorer

คลิกที่โครงการ MVC จากนั้นตรวจสอบคุณสมบัติจะแสดงแท็บเว็บที่คุณสามารถเปลี่ยนพอร์ตได้


-2

แก้ไขไฟล์. slnโดยใช้โปรแกรมแก้ไขเช่น notepad

เปลี่ยนพอร์ตทั้งหมดด้วยพอร์ตใหม่


นี่เป็นวิธีแก้ปัญหาที่ถูกต้องหากคุณใช้ Web Site Project แบบเก่า (เช่นสำหรับไฟล์ ASP Classic) ใน VS2019 คุณต้องแก้ไขไฟล์โซลูชันเนื่องจากไม่มีเพจคุณสมบัติอื่น ๆ โปรเจ็กต์ของฉันมีลักษณะเช่นนี้ในไฟล์ sln โครงการ ("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "MyWebSitePrj", " localhost: 50194 ", "{BC30BA4B-1D1D-48D0-B1E8-86CBD64611B5}"
Brad Irby

-6

ปรับใช้แอปพลิเคชันของคุณใน IIS ด้วยพอร์ตเริ่มต้น พยายามแก้จุดบกพร่องโดยใช้ Visual Studio เป็นแนวทางปฏิบัติที่ดี หากคุณใช้วิชวลสตูดิโอระบบจะเปลี่ยนหมายเลขพอร์ตอยู่ตลอดเวลา ดังนั้นควรปรับใช้แอปพลิเคชันใน IIS ก่อนและเปิดแบบเดียวกันใน Visual Studio และแก้ไขข้อบกพร่อง


เรียนมาร์คฉันไม่คิดว่าคุณจะอ่านคำถามอย่างละเอียด!
Mohit

2
นอกจากนี้ยังไม่ใช่แนวทางปฏิบัติที่ดีในการพัฒนาเทียบกับ IIS โดยตรง บทความ MSDN นี้อธิบายว่าคุณควรใช้ IISExpress, IIS หรือเซิร์ฟเวอร์ภายนอกเมื่อใดในการพัฒนา msdn.microsoft.com/en-us/library/58wxa9w5(v=vs.120).aspx
Itanex
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.