Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Rest Server Windows Sunucuda Yayınlama
#1
Merhabalar.

Proje grubu oluşturarak Isapi ve Exe nin aynı WebModuleUnit kullanması sağlayarak REST Server yazdım. exe dosyasını kullanarak çalışmalarımı tamamladım.

Isapi dll olarak windows sunucuda (iis 10) yayınlamaya çalıştığımda hata alıyorum (Unigui Projeleri Isapi dll olarak Sorunsuz ve Aktif Çalışıyor)

Aşağıdaki ayarları yaptım. Server da başka yapmam gereken bir ayar yada yüklenilmesi gereken bir modul var mıdır?

Test Url: http://localhost/bakkal/listeGetir
Post Data : {"x":"9999","y":"15978845"} //Rest Debugger ile POST ediliyor.
Dönen Hata Olarak : IIS 10.0 Detailed Error - 404.0 - Not Found.  Error Code 0x80070002

Yapılanlar
- Application Pools a yeni bir tane eklendi. Advanced Settings -> Enable 32 Bit Application = True yapıldı.
- Sites -> Yeni Application Eklendi. Application Pool ayarlandı.
- Authencation ayarlandı (IUSR)
- Default Document e eklendi
- Handler Mapping -> isapi-dll ayarı yapıldı

Bu Sitedeki Ayarları tekrar tekrar yaptım.
https://danieleteti.gitbooks.io/delphimv...y_iis.html
Cevapla
#2
(13-08-2024, Saat: 19:39)ugorkem Adlı Kullanıcıdan Alıntı: Merhabalar.

Proje grubu oluşturarak Isapi ve Exe nin aynı WebModuleUnit kullanması sağlayarak yazdım. exe dosyasını kullanarak çalışmalarımı tamamladım.

Isapi dll olarak windows sunucuda (iis 10) yayınlamaya çalıştığımda hata alıyorum (Unigui Projeleri Isapi dll olarak Sorunsuz ve Aktif Çalışıyor)

Aşağıdaki ayarları yaptım. Server da başka yapmam gereken bir ayar yada yüklenilmesi gereken bir modul var mıdır?

Test Url: http://localhost/bakkal/listeGetir
Post Data : {"x":"9999","y":"15978845"} //Rest Debugger ile POST ediliyor.
Dönen Hata Olarak : IIS 10.0 Detailed Error - 404.0 - Not Found.  Error Code 0x80070002

Yapılanlar
- Application Pools a yeni bir tane eklendi. Advanced Settings -> Enable 32 Bit Application = True yapıldı.
- Sites -> Yeni Application Eklendi. Application Pool ayarlandı.
- Authencation ayarlandı (IUSR)
- Default Document e eklendi
- Handler Mapping -> isapi-dll ayarı yapıldı

Bu Sitedeki Ayarları tekrar tekrar yaptım.
https://danieleteti.gitbooks.io/delphimv...y_iis.html

Merhabalar,


https://www.unigui.com/doc/online_help/i...module.htm

http://forums.unigui.com/index.php?/topi...-isap-dll/

İncelemek isteyebilirsiniz.

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#3
Cevabınız için teşekkürler.
Unigui isapi ayarları ile de yayınlamayı denedim ama maalesef yine hata aldım.

Sanki Rest server için farklı bir ayar gerekiyor gibi. Ama ne olduğunu bir türlü bulamadım.
Cevapla
#4
Proje tipi ISAPI olduğunda, WebModuleUnit Action listesinde yanlızca Default alanı true olarak belirlenen metod çalışır. Nedeni IIS ve benzeri sunucu sistemlerinin HTTP isteklerini ilk işleyecek uygulama olmasıdır. Bu nedenle Default olarak belirlenen Action da URL Pathleri sizin değerlendirme yapmanız gerekecektir. Exe uygulama tipinde ise sunucu misyonunu kendi üstlendiği için actionlar kendisinde belirtilen path'e göre işlem yapacaktır. Bu durumu gözden geçirip tekrar kontrol etmenizi öneririm.
Cevapla
#5
(14-08-2024, Saat: 11:37)delphi.developer Adlı Kullanıcıdan Alıntı: Proje tipi ISAPI olduğunda, WebModuleUnit Action listesinde yanlızca Default alanı true olarak belirlenen metod çalışır. Nedeni IIS ve benzeri sunucu sistemlerinin HTTP isteklerini ilk işleyecek uygulama olmasıdır. Bu nedenle Default olarak belirlenen Action da URL Pathleri sizin değerlendirme yapmanız gerekecektir. Exe uygulama tipinde ise sunucu misyonunu kendi üstlendiği için actionlar kendisinde belirtilen path'e göre işlem yapacaktır. Bu durumu gözden geçirip tekrar kontrol etmenizi öneririm.

Cevabınız için çok teşekkürler.
Sunucu konusu benim çok zayıf olduğum bir konu. 
Ayrıca path yapısı standart bir yapı olup biz belirleyemiyoruz, sadece sisteme uyuyoruz.
bu path yapısını exe sunucudaki gibi isapi uygulamaya yönlendirebilmek ve ayarları yapabilmek için  makale yada teknik dokuman sizde var mıdır?
Cevapla
#6
Size sunulan WEB API'lar için Default Handler Action da aşağıdaki gibi işlem gerçekleştirebilirsiniz. Örneklemeyi http://localhost/bakkal/listeGetir üzerinden baz aldım.

procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
 if Request.PathInfo = '/bakkal/listeGetir' then
   Response.Content := 'listeGetir'
 else if Request.PathInfo = '/bakkal/kaydet' then
   Response.Content := 'kaydet'
 else if Request.PathInfo = '/bakkal/sil' then
   Response.Content := 'sil';
end;
Cevapla
#7
(14-08-2024, Saat: 18:19)delphi.developer Adlı Kullanıcıdan Alıntı: Size sunulan WEB API'lar için Default Handler Action da aşağıdaki gibi işlem gerçekleştirebilirsiniz. Örneklemeyi http://localhost/bakkal/listeGetir üzerinden baz aldım.

procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
 if Request.PathInfo = '/bakkal/listeGetir' then
   Response.Content := 'listeGetir'
 else if Request.PathInfo = '/bakkal/kaydet' then
   Response.Content := 'kaydet'
 else if Request.PathInfo = '/bakkal/sil' then
   Response.Content := 'sil';
end;

Çok teşekkürler default handler içine çekince tüm sorunlar kayboldu.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Rest.JSON array serilize hk yhackup 11 428 28-11-2024, Saat: 12:35
Son Yorum: delphi.developer
  Rest Server m_ekici 8 556 21-10-2024, Saat: 08:47
Son Yorum: RAD Coder
  Rest Hata Yakalama m_ekici 13 2.376 15-08-2024, Saat: 17:32
Son Yorum: mrmarman
  Delphi SQL Connection & TCP Server hakkında yanniosman 3 756 11-06-2024, Saat: 17:38
Son Yorum: Tuğrul HELVACI
  server programinda hani veritabani dogru olur. sadikacar60 4 656 30-01-2024, Saat: 21:06
Son Yorum: sadikacar60



Konuyu Okuyanlar: 1 Ziyaretçi