আইআইএস এক্সপ্রেসের সাথে কাস্টম ডোমেনগুলি ব্যবহার করা


304

Localতিহ্যগতভাবে আমি আমার লোকালহোস্ট ডেভলপমেন্ট সার্ভারের সাথে কাস্টম ডোমেন ব্যবহার করি। এর লাইন ধরে কিছু:

dev.example.com
dev.api.example.com

বাহ্যিক এপিআই যেমন ফেসবুকের সাথে কাজ করার সময় এটি আমাকে এক টন নমনীয়তা সরবরাহ করেছে। এটি ভিজ্যুয়াল স্টুডিও ডেভলপমেন্ট সার্ভারে অন্তর্নির্মিত হয়ে অতীতে দুর্দান্ত কাজ করেছে, কারণ আমাকে যা করার দরকার তা হল সেই ডিএনএস রেকর্ডগুলিতে সিএনএম যুক্ত করা 127.0.0.1

তবে আমি এটি আইআইএস এক্সপ্রেসের সাথে কাজ করতে পারিনি। আমি যা কিছু চেষ্টা করেছি তা ব্যর্থ হয়েছে বলে মনে হচ্ছে। এমনকি আমি applicationHost.configআইআইএস এক্সপ্রেসের জন্য ফাইলটিতে সঠিক এক্সএমএল কনফিগারেশন যুক্ত করেছি , তবে মনে হয় নি যে এন্ট্রিগুলি আইআইএস-এর সত্যিকারের ইনস্টল হিসাবে বৈধ হিসাবে স্বীকৃত হবে।

<binding protocol="http" bindingInformation="*:1288:dev.example.com" />

যখনই আমি এই লাইনে প্রবেশ করি এবং অনুরোধ করার চেষ্টা http://dev.example.com:1288করি আমি নিম্নলিখিত বার্তাটি পাই:

অগ্রহন যোগ্য আবেদন (অগ্রহন যোগ্য হোস্টের নাম

আমি কি সুস্পষ্ট কিছু মিস করছি তা যদি কেউ জানেন? বা আইআইএস এক্সপ্রেস টিমের এই ধরণের ব্যবহার দেখার জন্য কী সত্যিই দূরদর্শিতার অভাব রয়েছে?


আপনার কাছে অ্যাপ্লিকেশন নলের অ্যাপ্লিকেশনপুল বৈশিষ্ট্যটি "ক্লার 2 ইন্টিগ্রেটেড অ্যাপপুল" বা "ক্লার 4 ইন্টিগ্রেটেড অ্যাপপুল" এ সেট করা আছে তা নিশ্চিত করুন। "Clr2ClassicAppPool" বা "Clr4ClassicAppPool" ব্যবহার করার সময় আপনি যে খারাপ হোস্টনামের ত্রুটিটি দেখছেন তা পেয়েছি।
নিল মনরো

বিভ্রান্ত - CNAME রেকর্ডগুলি আইপি ঠিকানাগুলি স্বীকার করে না তবে পরিবর্তে অন্যান্য হোস্টের নাম গ্রহণ করে। আপনি কি একটি রেকর্ড বোঝাতে চেয়েছিলেন?
স্কট কোটস

1
আমার এটি নিয়ে প্রচুর সমস্যা ছিল এবং কেবল আইআইএস এক্সপ্রেসের পরিবর্তে আইআইএস ব্যবহার করা অনেক সহজ ছিল
ইউজার0 বি 101010

আমি ঠিক এই মধ্যে দৌড়ে। আমি আশা করছিলাম এটি কেবল পোর্ট নম্বরটি দেখবে এবং ডোমেনটিকে উপেক্ষা করবে। এমন ভাগ্য নেই. আশা করি আমি বন্দরে "সমস্ত গ্রহণ করুন" সক্ষম করতে পারতাম ....
ব্র্যাডি মরিজেট

এখন ভোট দাও! আমি একটি ইউজারভয়েস
লূক পুপলেট

উত্তর:


367

এটি আমার জন্য কাজ করেছে (ভিএস ২০১৩ এর জন্য আপডেট হয়েছে, ২০১০ সালের সংশোধন ইতিহাস দেখুন, ভিএস ২০১৫ এর জন্য এটি দেখুন: https://stackoverflow.com/a/32744234/218971 ):

  1. ডান-ক্লিক করুন আপনার ওয়েব অ্যাপ্লিকেশন প্রকল্প ▶ PropertiesWeb, তারপর কনফিগারServers অধ্যায় নিম্নরূপ:
    • নির্বাচন করা IIS Express ▼ড্রপ ডাউন থেকে
    • প্রকল্প ইউআরএল: http://localhost
    • অ্যাপ্লিকেশন রুট URL ওভাররাইড করুন: http://dev.example.com
    • ক্লিক করুন Create Virtual Directory(আপনি যদি এখানে কোনও ত্রুটি পান তবে আপনাকে আইআইএস 5/6/7/8 অক্ষম করতে হবে, আইআইএসের Default Siteবন্দর ব্যতীত অন্য কোনও কিছুতে পরিবর্তন :80করতে হবে, নিশ্চিত করুন স্কাইপ 80 বন্দর ব্যবহার করছে না ইত্যাদি)
  2. বৈকল্পিকভাবে: SET Start URLকরতেhttp://dev.example.com
  3. %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config(উইন্ডোজ এক্সপি, ভিস্তা এবং 7) খুলুন <sites>এবং নিম্নলিখিত লাইনের সাথে থাকতে কনফিগারেশনে ব্লক সাইটের সংজ্ঞাটি সম্পাদনা করুন :

    <site name="DevExample" id="997005936">
        <application path="/" applicationPool="Clr2IntegratedAppPool">
            <virtualDirectory
                path="/"
                physicalPath="C:\path\to\application\root" />
        </application>
        <bindings>
            <binding
                protocol="http"
                bindingInformation=":80:dev.example.com" />
        </bindings>
        <applicationDefaults applicationPool="Clr2IntegratedAppPool" />
    </site>
    
  4. যদি এমভিসি চলছে: নিশ্চিত করুন applicationPoolযে এটি "ইন্টিগ্রেটেড" বিকল্পগুলির মধ্যে একটিতে সেট করা আছে (যেমন "ক্লার 2 ইনটেগ্রেটেড অ্যাপপুল"))

  5. আপনার hostsফাইলটি খুলুন এবং লাইনটি যুক্ত করুন 127.0.0.1 dev.example.com
  6. ► Start আপনার আবেদন!

মন্তব্যগুলি থেকে কিছু দুর্দান্ত পরামর্শ:

  • প্রশাসক হিসাবে আপনার ভিজ্যুয়াল স্টুডিও চালানোর প্রয়োজন হতে পারে।
  • আপনি যদি অন্যান্য ডেভস তৈরি করতে চান তবে আপনার আইআইএস চালানো দেখুন netsh http add urlacl url=http://dev.example.com:80/ user=everyone
  • আপনি যদি সাইটটি সমস্ত হোস্ট সেটগুলির জন্য সমাধান করতে চান bindingInformation="*:80:"। আপনার যে কোনও বন্দরটি ব্যবহার করুন, 80 টি সুবিধাজনক।

12
এটি আমি যা করতে পেরেছিলাম তা হ'ল, তবে আপনি আমাকে ঘুষি মারলেন :-) পার্শ্ব নোট হিসাবে, আপনি যদি অন্য দেবকে আপনার আইআইএস দেখতে চান আপনি "নেট নেট পোস্ট যোগ করার মতো কিছু করতে চাইতে পারেন" urlacl url = dev.example.com:80 ব্যবহারকারী = প্রত্যেকে "
EBarr

6
এছাড়াও, আপনি যদি সমস্ত হোস্টের জন্য সাইটটি সমাধান করতে চান তবে আপনি এটি ব্যবহার করতে পারেন: বাইন্ডিং ইনফর্মেশন = "*: 80:" আমি এটি তাই স্থানীয় লোকাল ডট কম ব্যবহার করি।
ল্যান্স ফিশার

17
আমি একটি অ্যাক্সেস অস্বীকার ত্রুটি পেয়ে যাচ্ছিলাম। অ্যাডমিন হিসাবে এটি ভিএস ২০১২ চালিয়ে গেছে।
xanadont

3
এটি আইআইএস এক্সপ্রেসের কোন সংস্করণ? আমি ভিএস ২০১২ চালিয়ে যাচ্ছি (যা আমি বিশ্বাস করি আইআইএস এক্সপ্রেস ৮.০) এবং আমি যখন ওয়েব প্রোপার্টি পৃষ্ঠার "সার্ভারস" অংশের অধীনে "স্থানীয় স্থানীয় আইআইএস সার্ভার" রেডিওবোটনটি ক্লিক করি তখন আইআইএস এক্সপ্রেস ব্যবহার করুন চেকবক্সটি ক্লিক করুন, এবং তারপরে চেষ্টা করুন " mydev.example.com " এ রাখতে, তারপরে "ভার্চুয়াল ডিরেক্টরি তৈরি করুন" বোতামটি টিপুন, আমি এই ত্রুটিটি পেয়েছি "ভার্চুয়াল ডিরেক্টরি তৈরি করতে অক্ষম the ওয়েব সাইটটি তৈরি করতে পারছি না mydev.example.com"। সার্ভার নামের জন্য আপনাকে অবশ্যই "লোকালহোস্ট" নির্দিষ্ট করতে হবে।
মাইকেল ম্যাকার্থি 15

12
এটা জটিল। কাউকে অবশ্যই বিভিন্ন স্থানে সিট পরিবর্তন করতে হবে। বাস্তব জগাখিচুড়ি করা সহজ। সত্যিই কি সহজ উপায় নেই?
অ্যান্ডারসন

151

জন্য ভিসুয়াল স্টুডিও 2015 উপরে উত্তর পদক্ষেপ প্রয়োগ কিন্তু applicationhost.configফাইলকে একটি নতুন অবস্থানে থাকে। আপনার "সমাধান" ফোল্ডারে পাথ অনুসরণ করুন, আপনি আপগ্রেড করেন এবং applicationhost.configআপনার মেশিনে TWO সংস্করণ থাকলে তা বিভ্রান্তিকর ।

\.vs\config

সেই ফোল্ডারের মধ্যে আপনি আপনার অ্যাপ্লিকেশনহোস্ট.কনফিগ দেখতে পাবেন ফাইলটি

বিকল্পভাবে আপনি .config ফাইলের জন্য আপনার সমাধান ফোল্ডারটি সন্ধান করতে পারেন এবং সেভাবে এটি খুঁজে পেতে পারেন।

আমি ব্যক্তিগতভাবে নিম্নলিখিত কনফিগারেশন ব্যবহার করেছি:

এখানে চিত্র বর্ণনা লিখুন

আমার হোস্ট ফাইলে নিম্নলিখিতটি সহ:

127.0.0.1       jam.net
127.0.0.1       www.jam.net

এবং আমার এপ্লিকেশনহোস্ট.কনফিগ ফাইলটিতে নিম্নলিখিতগুলি:

<site name="JBN.Site" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Dev\Jam\shoppingcart\src\Web\JBN.Site" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:49707:" />
            <binding protocol="http" bindingInformation="*:49707:localhost" /> 
    </bindings>
</site>

প্রশাসক হিসাবে ভিজ্যুয়াল স্টুডিও 2015 এর উদাহরণটি চালাতে ভুলবেন না! আপনি যদি এটি না করতে চান তবে প্রতিবার আমি এটির পুনঃসংশোধন করব:

ডিফল্টরূপে প্রশাসক হিসাবে ভিজ্যুয়াল স্টুডিও কীভাবে চালানো যায়

আমি আশা করি এটি কারও সাহায্য করবে, ভিজ্যুয়াল স্টুডিও 2015 আপগ্রেড করার চেষ্টা করার সময় আমার সমস্যা ছিল এবং বুঝতে পেরেছিলাম যে আমার কনফিগারেশনগুলির কোনওটিই সম্পন্ন হচ্ছে না।


9
গুরুত্বপূর্ণ অংশ হয় যোগ দ্বিতীয় *:49707:পরিবর্তে বাঁধাই প্রতিস্থাপন ডিফল্ট *:49707:localhostহিসাবে অনেক অন্যান্য উত্তর সুপারিশ করেছে। এবং আপনাকে প্রশাসক হিসাবে ভিএস চালাতে হবে, প্রকৃতপক্ষে (sic!)। ধন্যবাদ.
fracz

3
আপনি http://jam.127.0.0.1.xip.io/যদি আপনার হোস্ট ফাইলটি সংশোধন করতে না চান তবে আপনি এমন একটি ইউআরএলও ব্যবহার করতে পারেন। এছাড়াও, কোনও সহযোগীকারীদের তাদের সংশোধন করার প্রয়োজন হবে না। Xip.io দেখুন ।
জ্যাক মার্টিন

1
আমি মনে করি যে ".vs" ফোল্ডারটি লুকানো আছে এবং এটি প্রথমে দৃশ্যমান করা উচিত
হতাশ

3
আমি নিশ্চিত করেছি যে এটি ভিজ্যুয়াল স্টুডিও 2017 তেও কাজ করে। মজার বিষয় হল, আমার উভয় <বাইন্ডিং> উপাদানগুলির প্রয়োজন নেই ("লোকালহোস্ট" ব্যতীত প্রথম প্রথমটি)। ভিজ্যুয়াল স্টুডিওতে অবশ্যই অ্যাডমিনিস্ট্রেটর হিসাবে চালানো দরকার, যা বিরক্তিকর
লরেন পলসেন

1
আমি কেবল ইচ্ছুক যে আমাদের মধ্যে তাদের পক্ষে এমন কোনও উপায় ছিল যা প্রশাসনিকভাবে এটি করার জন্য কিছু চালানোর অনুমতি পায় না। নিয়োগকর্তারা / ক্লায়েন্টরা যারা এগুলি প্রশাসনিক সুবিধাকে নিষিদ্ধ ঘোষণা করে তারা কীভাবে নিরাপদে এটি সক্ষম করতে পারে তা অবিশ্বাস্যরকম সংক্ষিপ্ত দৃষ্টিশক্তি।
স্টিভ পেটিফায়ার

44

আইআইএস এক্সপ্রেসের সাথে ভিজ্যুয়াল স্টুডিও 2012 ব্যবহার করার সময় পরিবর্তন হচ্ছে বিদ্যমান বন্ডিং স্থায়ীভাবে চলবে না। (আপনি ভিএস বন্ধ না করা পর্যন্ত এটি কার্যকর হতে পারে, তবে এর পরে জিনিসগুলি সত্যিই গণ্ডগোল হয়ে যায়))

কীটি বিদ্যমান লোকালহোস্টকে আবদ্ধ করে রাখছে এবং এর পরে একটি নতুন বাঁধাই যুক্ত করবে।

আপনি প্রশাসক হিসাবে চালা না করা ছাড়া আপনার চালানো দরকার netsh add urlacl (স্ট্যান্ডার্ড ব্যবহারকারী হিসাবে একটি লোকালহোস্ট সাইট চালানোর অনুমতি দেওয়ার জন্য)।

আপনি যদি কোনও হোস্ট নামের অনুমতি দিতে চান তবে সম্পূর্ণ প্রক্রিয়াটি নিম্নরূপ:

  1. আপনার ওয়েব অ্যাপ্লিকেশন তৈরি করুন এবং এটি কোন পোর্টটি ব্যবহার করছে তা সন্ধান করুন (প্রকল্পের বৈশিষ্ট্য, ওয়েব ট্যাব, প্রকল্পের url দেখুন)।
  2. একজন প্রশাসক প্রম্পট থেকে নিম্নলিখিত কমান্ড সঞ্চালন করুন (প্রতিস্থাপন portnumber পোর্ট নম্বর আপনি # 1 মূর্ত আউট সহ):

    netsh http add urlacl url="http://*:portnumber/" user=everyone
    netsh http add urlacl url="http://localhost:portnumber/" user=everyone
    

উন্নত সুরক্ষার জন্য আপনি প্রত্যেকের পরিবর্তে আপনার ব্যবহারকারীর নাম (DOMAIN \ USER) ব্যবহার করতে পারেন।

  1. অ্যাপ্লিকেশন হোস্টকনফিগ খুলুন (সাধারণত আমার ডকুমেন্টস \ আইআইএস এক্সপ্রেস \ কনফিগারেশনের অধীনে) এবং আপনার পোর্ট নম্বর সহ উপাদানটি সন্ধান করুন।
  2. আপনি যে হোস্ট নামটি চান তার সাথে আরও একটি বাঁধাই যুক্ত করুন (এই ক্ষেত্রে, *)। উদাহরণ স্বরূপ:

    <site name="MvcApplication1" id="2">
        <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="C:\sites\MvcApplication1" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:12853:localhost" />
            <binding protocol="http" bindingInformation="*:12853:*" />
        </bindings>
    </site>
    

মনে রাখবেন, সমস্ত হোস্টের নাম (*) খুলতে চাইলে আপনার জন্য দুটি নেট কমান্ড (একটি * * এবং একটি লোকালহোস্টের জন্য) প্রয়োজন। আপনি যদি কেবল একটি নির্দিষ্ট হোস্টের নাম খুলতে চান তবে আপনার দ্বিতীয় নেট কমান্ডের (লোকালহোস্ট) কঠোর প্রয়োজন নেই; আপনার নির্দিষ্ট হোস্টের নামের সাথে একটি যথেষ্ট।


মাইকাস্টোমোস্ট ব্রাউজ করার সময় একই (1 ম পদ্ধতির) কাজটি করেছেন: মাইপোর্টার আমি "পরিষেবা অনুপলব্ধ" পাই। VS2012। আমি "আমার ডকুমেন্টস" এবং অ্যাপ্লিকেশনহোস্ট.কনফিগের অধীনে আইআইএস এক্সপ্রেস না থাকায় আমি ২ য় চেষ্টা করতে পারি না: \ প্রোগ্রাম ফাইলগুলি \ আইআইএস এক্সপ্রেসের আমার ওয়েব অ্যাপ্লিকেশনটির জন্য কোনও কনফিগারেশন নেই ...
ফায়ারপল

2
ভিএস ২০১৩ এর সাথে, আমি দেখতে পাচ্ছি যে এই কনফিগারেশনটি কেবল তখনই কাজ করে যদি আমি তখন প্রশাসক হিসাবে চালাই! (নন-অ্যাডমিন হিসাবে চলমান, আইআইএস এক্সপ্রেসটি ২ য় বাইন্ডিং উপেক্ষা করবে বলে মনে হয় - আমি যদি বিজ্ঞপ্তি আইকনটি থেকে এটির ইউআই খুলি, তবে আইআইএস আমার সাইটটি চলমান হিসাবে দেখায়, তবে কেবলমাত্র প্রথম বাইন্ডিং দেখায়, এবং আমি কেবল লোকালহোস্ট ব্যবহার করতে পারি ... আমি অ্যাডমিন হিসাবে চালিয়ে যাচ্ছি, এটি ইউআইতে এবং উভয় কাজ উভয়ই বাঁধাই প্রদর্শন করে)) আমি নেটগুলির সাথে ইউআরএলকগুলি যুক্ত করেছি, তবে এটি কোনও তাত্পর্যপূর্ণ বলে মনে হচ্ছে - আইআইএস এক্সপ্রেস লোকালহোস্ট ব্যতীত অন্য কোনও কিছু চেষ্টা করেও বাঁধতে পারে না বলে মনে হচ্ছে যদি এটি উন্নত না হয়
ইয়ান গ্রিফিথস

*সমাধান করা আমার সাথে "পরিষেবা অনুপলব্ধ" এর সাথে একটি রেকর্ড যুক্ত করা ।
জেরোন

443 পোর্টে আপনাকে এইচটিটিপিএস ব্যবহার করতে হবে এমন দৃশ্যের বিষয়ে কী বলা যায়?
কিসোকা

@ কিসোসকা আমি এইচটিটিপিএস চালানোর চেষ্টা করছি। আমি এটি কাজ করতে পেরেছি তবে ব্রাউজারটি অভিযোগ করে যে শংসাপত্রটি ডোমেনের সাথে মেলে না। আমি অতীত হয়েছি তবে সমস্ত সংস্থানগুলি তখন কোনও চিত্র, স্ক্রিপ্ট বা সিএসএস লোড করতে ব্যর্থ হয়।
প্রাইম ডিজাইন

24

অবৈধ হোস্টনামটি নির্দেশ করে যে আপনি আইআইএস এক্সপ্রেস কনফিগারেশন ফাইলে কনফিগার করা প্রকৃত সাইটটি সম্ভবত সম্ভবত চলমান নেই। আইআইএস এক্সপ্রেসের আইআইএসের মতো কোনও প্রক্রিয়া মডেল নেই।


আপনার সাইটটি চালানোর জন্য এটি স্পষ্টভাবে শুরু করা উচিত (ওয়েবম্যাট্রিক্স থেকে খোলা এবং অ্যাক্সেসের মাধ্যমে, অথবা কমান্ড লাইন থেকে কল iisexpress.exe কল করুন (এটি ইনস্টলেশন ডিরেক্টরি থেকে) / সাইট প্যারামিটার দিয়ে।


সাধারণভাবে, স্থানীয় অ্যাক্সেসের জন্য পুরোপুরি যোগ্যতাসম্পন্ন ডিএনএস নামগুলি ব্যবহার করার অনুমতি দেওয়ার পদক্ষেপগুলি হ'ল ডিএনএস নামের dev.example.com এর উদাহরণ ব্যবহার করুন

  1. % উইন্ডোজ% \ system32 \ ড্রাইভার \ ইত্যাদি সম্পাদনা করুন। dev.example.com- কে 127.0.0.1 এ মানচিত্রের জন্য ফাইল হোস্ট করে (প্রশাসকের অধিকার প্রয়োজন)। আপনি যদি ডিএনএস সার্ভার নিয়ন্ত্রণ করেন (নিকের ক্ষেত্রে যেমন) তবে ডিএনএস এন্ট্রি যথেষ্ট কারণ এই পদক্ষেপের প্রয়োজন নেই।
  2. আপনি যদি প্রক্সিটির মাধ্যমে ইন্টারনেট অ্যাক্সেস করেন তবে নিশ্চিত হয়ে নিন যে dev.example.com প্রক্সিটির প্রতিবাদ করা হবে না (আপনার ব্রাউজারে আপনাকে ব্যতিক্রমী তালিকাটি রাখতে হবে (IE এর জন্য এটি সরঞ্জাম / ইন্টারনেট বিকল্প / সংযোগ / ল্যান সেটিংস, তারপরে প্রক্সি সার্ভার / অ্যাডভান্সড এ যান এবং এক্সপশন তালিকায় dev.example.com রাখুন।
  3. আপনার সাইটের জন্য আইআইএস এক্সপ্রেস বাইন্ডিং কনফিগার করুন (যেমন: সাইট 1) dev.example.com অন্তর্ভুক্ত করতে। বাঁধাই ব্যবহার করার জন্য প্রশাসনিক সুযোগ-সুবিধার প্রয়োজন হবে। বিকল্পভাবে, http.sys ব্যবহার করে এককালীন URL সংরক্ষণ করা যেতে পারে

    netsh http add urlacl url=http://dev.example.com:<port>/ user=<user_name>

  4. শুরু iisexpress /site:Site1ওয়েবম্যাট্রিক্সে সাইট 1 বা খুলুন


2
হাই জারো, সহায়তার জন্য ধন্যবাদ, তবে 127.0.0.1 টি আমার ডিএনএসে সেট করা আছে হোস্ট ফাইল নয় যাতে সমস্ত বিকাশকারীদের একই অ্যাক্সেস থাকে। দ্বিতীয়টি আমি ভিএস-তে ডিবাগিং শুরু করার জন্য এটি পেতে পারি না, যদি না বন্ধকটি "*: 1234: লোকালহোস্ট" হিসাবে সেট করা থাকে যা সম্পূর্ণ অকেজো সেটআপ, কারণ এটি আমার মেশিনের সমস্ত আইপি ঠিকানার সাথে আবদ্ধ তবে কেবল "লোকালহোস্টের হোস্ট শিরোনামকে গ্রহণ করে "। কেন তারা কেবল "127.0.0.1पथ234:" করেনি এবং এই সমস্ত বকাবকি এড়ানো যায় না। আইপি এবং পোর্ট সমাধানের পরে হোস্ট শিরোনামগুলির প্রয়োজন হয় না। এবং অ্যাডমিন হিসাবে দৌড়ানো একটি বড় দলের জন্য পাছায় কেবল একটি বিশাল ব্যথা। আইআইএস এক্সপ্রেস কী বিপর্যয়।
নিক বেরার্ডি

1
এছাড়াও ঠিক যেমন একটি রেফারেন্সের Bad Request - Invalid Hostnameঅর্থ হল যে আমি যে হোস্টনামটি ব্যবহার করতে চাইছি তা সমাধান করতে পারে না কারণ আইআইএস এক্সপ্রেস দল তাদের অসীম জ্ঞানের দ্বারা নির্দিষ্টভাবে "লোকালহোস্ট" কে কেবলমাত্র হোস্ট শিরোনাম হিসাবে কাজ করবে বলে সিদ্ধান্ত নিয়েছে। এবং ভিএস আপনাকে "*: 1234: লোকালহোস্ট" ব্যতীত অন্য কোনও উপায়ে চালাতে দিবে না
নিক বেরার্ডি

2
আমি আপনাকে 127.0.0.1 ইস্যুতে শুনছি। বাইন্ডিংয়ের "লোকালহোস্ট" অবশ্যই বেদনাদায়ক কারণ এটিতে 127.0.0.1 এর ট্র্যাফিক অন্তর্ভুক্ত নয় । নকশাটি আজকের http.sys (HTTP প্রোটোকল হ্যান্ডলার) এর চুক্তি দ্বারা সীমাবদ্ধ যা কেবল প্রশাসনিক ব্যবহারের জন্য "লোকালহোস্ট" স্বীকৃতি দেয়। শুধুমাত্র প্রশাসকের প্রয়োজনীয়তা হ'ল http.sys (ওপরের তথ্যটি আপডেট করবে) দিয়ে এককালীন URL রিজার্ভেশন দ্বারা হ্রাস করা যেতে পারে। দয়া করে আমাকে ভিজুয়াল স্টুডিওর সাথে সঠিক ব্যবহারটি জানান (এটি এসপি 1 বিটার সাথে ভিএস 2010?)। আসুন এটি নিয়ে আরও কিছু করার চেষ্টা করুন এবং (আশা করি) বিষয়টি নিষ্পত্তি করুন।
জারো ডুনাজস্কি

দ্রষ্টব্য - যদি আপনি netsh.exe ত্রুটি দেখতে পান তবে প্যারামিটারটি ভুল রয়েছে - কারণ আপনি আপনার হোস্টনামের পরে একটি ইউআরআই পথ (/) বাদ দিয়েছেন।
টিম লাভল-স্মিথ

19

আমার WebMatrix আইআইএস Express এ পরিবর্তন করা থেকে ইনস্টল "*:80:localhost"করার "*:80:custom.hostname"( "খারাপ হোস্টনাম" এমনকি সঠিক ইত্যাদি \ হোস্ট ম্যাপিং সঙ্গে) কাজ করে না, কিন্তু "*:80:" করেনি কাজ - এবং অন্যান্য উত্তর এখানে প্রয়োজনীয় অতিরিক্ত পদক্ষেপ কেউই সঙ্গে। নোট করুন যে এটি "*:80:*"করবে না; দ্বিতীয় নক্ষত্রটি ছেড়ে দিন।


3
ইউউউম, তাই "*:80:*"আমার জন্য কাজ করেছে, কিন্তু তারপরে আমি আমার কম্পিউটার পুনরায় চালু করেছি এবং হঠাৎ এটি কাজ করবে না যতক্ষণ না আমি এটি পরিবর্তন করে "*:80:"এবং সবকিছু ঠিকঠাক হয়! ধন্যবাদ।
সিডব্লিউস্পিয়ার

2
অবশেষে !! এছাড়াও অন্য সমস্ত পদক্ষেপ অনুসরণ করেছে এবং শেষে * সরিয়ে ফেলা এটি কার্যকর হয়েছে, ধন্যবাদ!
চার্লস ফিলিপ

শুধু এখানে এটি আমার পক্ষে কাজ করেছে তা বলার জন্য। আমি স্বীকৃত উত্তরের চেষ্টা করেছি এবং আপনি যা বলেছিলেন তাতে সমস্ত পরিবর্তন নীচে ফিরে গেছে এবং সমস্ত দুর্দান্ত কাজ করে। আমি ভিএস2013 আপডেট 4 ব্যবহার করছি।
জেসন উইলকজাক

এটি নিখুঁতভাবে কাজ করে বলে মনে হচ্ছে। ভিএস ২০১7 ব্যবহার করার সময়, আমি নিশ্চিত নই যে প্রজেক্ট ইউআরএলে অ্যাপ্লিকেশন হোস্ট.কনফিগ ফাইলটিতে এটি লিখতে হবে কি? ভিএস আইডিইয়ের মাধ্যমে সেট করা কি সম্ভব?
জিম

8

আমি আমার কর্মপ্রবাহে সার্বজনীন আইপি ঠিকানা একীভূত করার চেষ্টা করছিলাম এবং এই উত্তরগুলির সাহায্য হয়নি (আমি আইডিই আইডিই হিসাবে ব্যবহার করতে চাই)। তবে উপরেরটি আমাকে সমাধানের দিকে নিয়ে যায় (ভিজ্যুয়াল স্টুডিও 2012 / উইন্ডোজ 8 এর সাথে সংহত করার জন্য একটি প্রাচীরের বিরুদ্ধে আমার মাথা মারার প্রায় 2 ঘন্টা পরে) এখানে আমার জন্য কী কাজ শেষ হয়েছিল তা এখানে।

এর আওতায় ভিজ্যুয়ালস্টুডিও দ্বারা উত্পাদিত applicationhost.configC:\Users\usr\Documents\IISExpress\config

    <site name="MySite" id="1">
        <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="C:\Users\usr\Documents\Visual Studio 2012\Projects\MySite" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:8081:localhost" />
            <binding protocol="http" bindingInformation="*:8082:localhost" />
            <binding protocol="http" bindingInformation="*:8083:192.168.2.102" />
        </bindings>
    </site>
  • Administratorএটি চালানোর জন্য আইআইএসএইপ্রেস সেট করুন যাতে এটি বাইরের ঠিকানার সাথে আবদ্ধ হতে পারে (স্থানীয় হোস্ট নয়)
  • হিসাবে ভিজ্যুয়াল স্টুডিও চালান Administrator যাতে এটি প্রশাসক হিসাবে প্রক্রিয়া শুরু করতে পারে যাতে বাধ্যবাধকতা কার্যকর হয়।

নেট ফলাফলটি আপনি ব্রাউজ করতে পারেন 192.168.2.102 আমার ক্ষেত্রে এবং পরীক্ষায় (উদাহরণস্বরূপ অ্যান্ড্রয়েড এমুলেটারে। আমি সত্যিই আশা করি এটি অন্য কাউকে সাহায্য করবে কারণ এটি অবশ্যই আমার জন্য বিরক্তিকর প্রক্রিয়া ছিল।

স্পষ্টতই এটি একটি সুরক্ষা বৈশিষ্ট্য যা আমি অক্ষম দেখতে চাই।


8

উপরের জেসি ফ্লিন্টের মতো আমি নিজেও .vs \ config \ applicationhost.config সম্পাদনা করতে চাইনি কারণ আমি পরিবর্তনগুলি সোর্স নিয়ন্ত্রণে বজায় রাখতে চেয়েছিলাম। আমিও আলাদা ব্যাচের ফাইল রাখতে চাইনি। আমি ভিএস 2015 ব্যবহার করছি ।

প্রকল্পের বৈশিষ্ট্য → ইভেন্টগুলি তৈরি করুন → প্রাক-বিল্ড ইভেন্ট কমান্ড লাইন: প্রকল্পের বৈশিষ্ট্যের স্ক্রিনশট


::The following configures IIS Express to bind to any address at the specified port

::remove binding if it already exists
"%programfiles%\IIS Express\appcmd.exe" set site "MySolution.Web" /-bindings.[protocol='http',bindingInformation='*:1167:'] /apphostconfig:"$(SolutionDir).vs\config\applicationhost.config"

::add the binding
"%programfiles%\IIS Express\appcmd.exe" set site "MySolution.Web" /+bindings.[protocol='http',bindingInformation='*:1167:'] /apphostconfig:"$(SolutionDir).vs\config\applicationhost.config"

কেবলমাত্র আপনি নিজের পছন্দসই বন্দরে পোর্ট নম্বর পরিবর্তন করেছেন তা নিশ্চিত করুন।


এখানে একটি ছোটখাটো সংযোজন। আপনার উইন্ডোজ ফায়ারওয়ালে সেই বন্দরটি খোলার জন্য নিয়ম তৈরি করার বিষয়টি নিশ্চিত করুন। তাহলে এটি কবজির মতো কাজ করেছিল!
পিটার এম

আমি আপনার উত্তরটি পছন্দ করি কারণ একাধিক বিকাশকারী যখন তাদের নিজস্ব মেশিনে আইআইএস এক্সপ্রেস চালায় তখন .vs \ config \ applicationhost.config সম্পাদনা করা সম্ভব হয় না। ধন্যবাদ!
কলিন

6

আপ-ভোট দেওয়া উত্তরটি বৈধ .. এবং এই তথ্যটি আমাকে বেশ খানিকটা সহায়তা করেছে। আমি জানি এই বিষয়টি আগে আলোচনা করা হয়েছিল তবে আমি কিছু অতিরিক্ত ইনপুট যুক্ত করতে চেয়েছিলাম। লোকেরা বলছেন যে আপনাকে অবশ্যই ব্যবহারকারী আইসইএক্সপ্রেস / কনফিগারেশন ডিরেক্টরিতে অ্যাপ্লিকেশন কনফিগ ফাইলটি "ম্যানুয়ালি সম্পাদনা" করতে হবে। এটি আমার পক্ষে একটি বড় সমস্যা কারণ আমি উত্স নিয়ন্ত্রণের মাধ্যমে কনফিগারেশনটি বিভিন্ন বিকাশকারীকে বিতরণ করতে চেয়েছিলাম।

আমি যা পেয়েছি তা হ'ল আপনি "সি: \ প্রোগ্রাম ফাইলগুলি \ আইআইএস এক্সপ্রেস \ অ্যাপসিএমডি.এক্সই" প্রোগ্রামটি ব্যবহার করে এই ফাইলটির আপডেটিং স্বয়ংক্রিয় করতে পারেন। নিয়ন্ত্রণের প্যারামিটারগুলি খুঁজতে কিছুক্ষণ সময় নিয়েছে তবে আমি আমার অনুসন্ধানগুলি এখানে ভাগ করে নিই। IIS এক্সপ্রেসের সাহায্যে হোস্ট শিরোনাম কনফিগারেশনকে সহজ করে তুলতে মূলত আপনি একটি .bat ফাইল তৈরি করতে পারেন যা NETSH কমান্ড এবং APPCMD.EXE (এবং সম্ভবত আপনি যদি হোস্ট ফাইলটি স্যুপ আউট করেন) চালিয়ে যান।

আপনার ইনস্টল ব্যাট ফাইলটি দেখতে এমন কিছু দেখাচ্ছে:

netsh http add urlacl url=http://yourcustomdomain.com:80/ user=everyone 

"C:\Program Files\IIS Express\appcmd.exe" set site "MyApp.Web" /+bindings.[protocol='http',bindingInformation='*:80:yourcustomdomain.com']

আমি একটি "আনইনস্টল" ব্যাট ফাইলও তৈরি করব যা এই বাইন্ডিংগুলি পরিষ্কার করে দেবে .. (কারণ প্রায়শই আমি কেবল ডিএনএস নষ্ট করি যাতে আমি হোস্টের নাম সংবেদনশীল) কোডটিতে কাজ করতে পারি)

netsh http delete urlacl url=http://yourcustomdomain.com:80/

"C:\Program Files\IIS Express\appcmd.exe" set site "MyApp.Web" /-bindings.[protocol='http',bindingInformation='*:80:yourcustomdomain.com']

আমি আশা করি এই তথ্য কারও পক্ষে সহায়ক .. এটি উদ্ঘাটন করতে আমার কিছুটা সময় লাগল।


4

জারোর পরামর্শ অনুসরণ করে আমি উইন্ডোজ এক্সপি এবং আইআইএস এক্সপ্রেসের অধীনে (ওয়েব ম্যাট্রিক্সের মাধ্যমে ইনস্টল করা) একটি ছোট সংশোধন করে এটি পেতে সক্ষম হয়েছি এবং কেবল লোকালহোস্টের মধ্যেই সীমাবদ্ধ ছিল না। সঠিকভাবে বাইন্ডিংগুলি সেট করার বিষয়টি কেবলমাত্র।

  1. আপনার ওয়েব অ্যাপ্লিকেশন রুটে ফোল্ডার থেকে একটি নতুন সাইট তৈরি করতে ওয়েবম্যাট্রিক্স ব্যবহার করুন।
  2. ওয়েবম্যাট্রিক্স বন্ধ করুন
  3. ওপেন %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config (উইন্ডোজ এক্সপি। ভিস্তা এবং 7 টি পাথ একই রকম হবে) এবং <sites>নীচের লাইনের সাথে থাকতে কনফিগারেশন ব্লকে সাইটের সংজ্ঞাটি সম্পাদনা করুন :

    <site name="DevExample" id="997005936">
        <application path="/" applicationPool="Clr2IntegratedAppPool">
            <virtualDirectory
                path="/"
                physicalPath="C:\path\to\application\root" />
        </application>
        <bindings>
            <binding
                protocol="http"
                bindingInformation="*:80:dev.example.com" />
        </bindings>
        <applicationDefaults applicationPool="Clr2IntegratedAppPool" />
    </site>

যদি এমভিসি চলছে, তবে অ্যাপ্লিকেশনপুলটিকে "সংহত" বিকল্পগুলির মধ্যে একটিতে সেট করুন।


3

ডেভিড এর সমাধান ভাল। তবে আমি <script>alert(document.domain);</script>পৃষ্ঠাটিতে এখনও "লোকালহোস্ট" সতর্কতা পেয়েছি কারণ প্রকল্পটি ইউরালটি ওভাররাইড করা হলেও এখনও লোকাল হোস্ট http://dev.example.com। আমি যে অন্য ইস্যুটি চালাচ্ছি তা হ'ল এটি আমাকে সতর্ক করে যে 80 বন্দরটি ইতিমধ্যে ব্যবহৃত হয়েছে এমনকি আমি ডেভিড মারডোকের প্রস্তাবিত 80 বন্দর নম্বরটি ব্যবহার করে স্কাইপটি অক্ষম করে রেখেছি। সুতরাং আমি আরও একটি সমাধান বের করেছি যা অনেক সহজ:

  1. প্রশাসক হিসাবে নোটপ্যাড চালান, এবং সি: \ উইন্ডোজ \ সিস্টেম32 \ ড্রাইভারস \ ইত্যাদি \ হোস্টগুলি খুলুন, 127.0.0.1 মায়ডোমেন যুক্ত করুন এবং ফাইলটি সংরক্ষণ করুন;
  2. ভিজ্যুয়াল স্টুডিও 2013 দিয়ে ওয়েব প্রকল্পটি খুলুন (দ্রষ্টব্য: অবশ্যই প্রশাসক হিসাবে চলতে হবে), প্রকল্পটি -> বৈশিষ্ট্য -> ওয়েবকে ডান ক্লিক করুন (ধরুন "আইআইএস এক্সপ্রেস" বিকল্পের অধীনে প্রজেক্ট ইউরালটি রয়েছে http://localhost:33333/), তারপরে এটিকে পরিবর্তন করুন http://localhost:33333/প্রতিhttp://mydomain:333333/ নোট: এই পরিবর্তন করার পরে, আপনি তন্ন তন্ন "ভার্চুয়াল ডিরেক্টরি তৈরি করুন" বোতামটি প্রকল্প URL বাক্সের ডান দিকে ক্লিক কিংবা ভিসুয়াল স্টুডিও এর সংরক্ষণ বোতামটি ক্লিক যেমন তারা সফল হবে না উচিত নয়। আপনি পরবর্তী পদক্ষেপ 3 পরে আপনার সেটিংস সংরক্ষণ করতে পারেন।
  3. % USERPROFILE% \ আমার ডকুমেন্টস \ IISExpress \ config \ applicationhost.config খুলুন, "33333: লোকালহোস্ট" অনুসন্ধান করুন, তারপরে এটি "33333: mydomain" এ আপডেট করুন এবং ফাইলটি সংরক্ষণ করুন।
  4. দ্বিতীয় ধাপে উল্লিখিত হিসাবে আপনার সেটিং সংরক্ষণ করুন।
  5. আপনার ভিজ্যুয়াল স্টুডিওতে একটি ওয়েব পৃষ্ঠায় ডান ক্লিক করুন, এবং "ব্রাউজারে দেখুন" ক্লিক করুন। এখন পৃষ্ঠাটি নীচে খোলা হবে http://mydomain:333333/, এবং <script>alert(document.domain);</script>পৃষ্ঠাতে "মাইডোমাইন" সতর্ক করবে।

দ্রষ্টব্য: উপরে তালিকাভুক্ত পোর্ট নম্বরটি 33333 বলে ধরে নেওয়া হয়েছে You আপনার ভিজ্যুয়াল স্টুডিও দ্বারা সেট করা পোর্ট নম্বরে আপনাকে এটি পরিবর্তন করতে হবে।

পোস্ট সম্পাদিত: আজ আমি অন্য একটি ডোমেন নাম দিয়ে চেষ্টা করেছি এবং নিম্নলিখিত ত্রুটি পেয়েছি: আইআইএস এক্সপ্রেস ওয়েব সার্ভার চালু করতে অক্ষম। URL নিবন্ধন করতে ব্যর্থ হয়েছে ... অ্যাক্সেস অস্বীকার করা হয়েছে। (0x80070005) । আমি উইন্ডোজ টাস্ক বারের ডান কোণায় আইআইএস এক্সপ্রেস আইকনটি ডান ক্লিক করে আইআইএস এক্সপ্রেস থেকে প্রস্থান করি এবং তারপরে প্রশাসক হিসাবে আমার ভিজ্যুয়াল স্টুডিওটি পুনরায় শুরু করব এবং সমস্যাটি শেষ হয়ে গেল।


1
এখন, এই উত্তরটি যথাযথ সমাধান হিসাবে বিবেচনা করা উচিত! আপনি যদি ভিজ্যুয়াল স্টুডিও 2015 ব্যবহার করে থাকেন তবে .vs / কনফিগারেশনে অবস্থিত অ্যাপ্লিকেশনহোস্ট কনফিগটি সম্পাদনা করে তা নিশ্চিত করুন।
ফ্যাবিও সালভালাই

1

আমি উপরের সমস্ত চেষ্টা করেছিলাম, কিছুই কাজ করেনি। সমস্যার সমাধানটি হোস্ট ফাইলটিতে আইপিভি 6 বাইন্ডিং যুক্ত করছিল। @ ডেভিড মারডোচস উত্তরের 5 ধাপে একটির পরিবর্তে দুটি লাইন যুক্ত করুন, যেমন:

127.0.0.1 dev.example.com
::1 dev.example.com

$ ping localhostকমান্ড লাইন যা আপনি ফিরে আসতেন তা পরীক্ষা করে আমি এটি আবিষ্কার করেছি :

Reply from 127.0.0.1: bytes=32 time<1ms TTL=128

পরিবর্তে, এটি এখন ফিরে আসে:

Reply from ::1: time<1ms

আমি জানি না, তবে কোনও কারণে আইআইএস এক্সপ্রেস আইপিভি 4 এর পরিবর্তে আইপিভি 6 ব্যবহার শুরু করেছে।



0

কারও প্রয়োজন হলে এখানে এখান থেকে চলে যাওয়া ...

আইআইএস এক্সপ্রেসে আমার ওয়ার্ডপ্রেস মাল্টিসাইট সেটআপের জন্য কাস্টম ডোমেন থাকা দরকার তবে আমি প্রশাসক হিসাবে ওয়েবম্যাট্রিক্স / ভিজ্যুয়াল স্টুডিও না চালানো পর্যন্ত কিছুই কার্যকর হয়নি। তারপরে আমি সাব-ডোমেনগুলি একই অ্যাপ্লিকেশনটিতে আবদ্ধ করতে সক্ষম হয়েছি।

<bindings> 
    <binding protocol="http" bindingInformation="*:12345:localhost" />
    <binding protocol="http" bindingInformation="*:12345:whatever.localhost" />
</bindings>

তারপরে http: //wways.localhost: 12345 / এ চলে যাবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.