Eğer, MacOS üzerine Parallels Windows kurup, hem back-end (Windows ortamında) hem de front-end (Mac ortamında) geliştiriyorsanız, bu yazı işinize yarayabilir.
Ne gerek var?
Windows ortamındaki Visual Studio, MacOS’ta olan Visual Studio’ya göre daha iyi ve stabil çalışıyor*
Ben UI geliştirmelerini MacOS üzerinden yapıp, API servislerini Windows üzerinde yazmak istiyordum ve yazdığım API servislerine UI ortamında local ağ üzerinden, Windows’ta ayağa kalkan API servislerine erişebilmem gerekiyordu.
Fakat kullandığım sanal işletim sistemi çalıştırmaya yarayan Parallels’in öğrenci sürümü olmasından kaynaklanıyor galiba: MacOS’tan attığım istekler Windows tarafına ulaşmıyordu. Belki pro versiyonunda birazdan yapacak olduğumuz ek ayarlara gerek kalmadan iş çözülüyordur.
Çözümü sizlerle paylaşmak istiyorum ve umarım bu sorunu yaşayan arkadaşlar için faydalı olur.
İlk önce kullandığım sistem ve programlardan bahsedeceğim:
macOS Mojave,
Parallels Öğrenci Sürümü ,
(Sanal Windows makina için gerekli program. Tabi bunun için para verip satın almanız gerekmiyor, sanal makina sunucuları için alternatifler mevcut
bkz: Oracle VM VirtualBox, fakat ben Parallels’i tercih ettim. )
Visual Studio Code (UI geliştirmelerimde kullandığım IDE),
Visual Studio 2015 (API geliştirmelerimde kullandığım IDE)
Sorun: macOS’tan sanal Windows’a request atamama.
Çözüm:
macOS tarafı ile işiniz yok bu aşamada. Aşağıda listenen aşamaların hepsi sanal Windows tarafında gerçekleştirilecektir.
1 https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/configuring-http-and-https
netsh http add urlacl url=http://+:80/MyUri user=DOMAIN\user
1. adımdaki linkten ilgili işletim sisteminize göre, kod satırını aldıktan sonra 2. adıma geçebilirsiniz.
2 komuttaki,
http://+: ‘+’ yıldız (*) şeklinde, user everyone olarak güncellenmelidir.
Şu şekilde:
netsh http add urlacl url=http://*:11111/ user=EVERYONE
2. maddeyi açıklamak gerekir ise;
*: host ne gelirse gelsin.
11111: Geliştirdiğim API servislerinin çalışma portu.
user=EVERYONE: erişimin tüm windows kullanıcılarından herkese açık olduğu.
3 Yazdığım API projesinin çalıştığı dizininin altında,
vs > config > applicationhost.config dosyasında, bindings düğümüne şu satırı eklemeniz gerekmekte:
<binding protocol=”http” bindingInformation=”*:11111:[LOCAL IP’NIZ]” />
Projenizin çalışitığı klasör dizinini açıp,
vs > config klasörününün altında applicationhost.config dosyasını Notepad++ ile açın ve uygulamaların listelendiği binding düğümünün altına yukarıdaki kod satırını ekleyin.
Burada Windows makinanızın aldığı IP’yi portun yanına eklemelisiniz.
Bkz:
<binding protocol=”http” bindingInformation=”*:50255:111.111.11.11" />
şeklinde.
Bu adımları tamamladığınızda Windows makinada çalıştırdığınız API projesi, IIS Server üzerinden, applicationhost.config’te yaptığınız ayarları baz alarak verdiğiniz port ve ip ile ayağa kalkacaktır ve Mac üzerinden sanal Windows’a ping atabileceksiniz.
Güzel bir dünya dileğiyle, sevgiler 🙏