פורסם 2010 במרץ 2815 שנים שלום לכולם לאחרונה שמעתי על המושג הזה WebServiceועניין אותי אם אני יכול לנצל אותו לגבי מה שאני רוצה לבצע:אני רוצה לשלוח הודעה לתוכנה שבניתי בכול פעם שמשתמש נכנס לאתר שליובהתאם לכך להדליק נורת לד שמחוברת ליציאת המדפסת שלי.בעיקרון את התיקשורת עם היציאת מדפסת והדלקת הלד כבר בניתי ואכןאני מצליח לשלוט על הלד בעזרת המחשב (השתמשתי בסיפרייה בשם inpoutx64 אשר נותנת לי ליצור תקשורת עם היציאת מדפסת בWindows 7) הבעיה היא עכשיו היא איך אני שולח מדף אינטרנט מידע לתוכנה שבניתי בכול פעם שניכנס משתמש לאתר.חיפשתי מידע באינטרנט ומצאתי דבר שניקרא WebService לאחר חקירהקטנה מצאתי גם את הכלי של מיקרוסופט שנקרא: Microsoft Visual Web Developerלבסוף כתבתי את התוכנה הבאה:Imports System.Web.ServicesImports System.Web.Services.ProtocolsImports System.ComponentModelImports System.Runtime.InteropServices' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.' <System.Web.Script.Services.ScriptService()> _<System.Web.Services.WebService(Namespace:="[url]http://tempuri.org/"[/url])> _<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _<ToolboxItem(False)> _Public Class Service1 Inherits System.Web.Services.WebService <WebMethod()> _ Public Function HelloWorld() As String MsgBox("Hello World!") Return "Hello World" End Function <WebMethod()> _ Public Sub TurnLED(ByVal LEDNumber As Integer) PortAccess.Output(&H378, 2 ^ LEDNumber) End Sub Public Class PortAccess <DllImport("inpout32.dll", EntryPoint:="Out32")> _ Public Shared Sub Output(ByVal address As Integer, ByVal value As Integer) End Sub End ClassEnd Classהרצתי אותה, נכנסתי לאתר ונכנסתי למתודה, הקשתי את מספר הלד שאני רוצה להדליק והכול עובד כמו שצריך!השאלה שלי היא האם בכלל הכיוון שלי נכון בקשר למה שאני רוצה לבצע? האם השימוש ב-Webservice הוא הנכון? והאם יש שיטה יותר טובה / יותר מקובלת לבצע זאת? ולאחר שבניתי את התוכנה הזו למשל, איך אני יכול לשלב אותה עם דף PHP פשוט שכתבתי?אני יודע שבעיקרון אני יכול פשוט מאוד להפנות את המשתמש לדף שמדליק את הלד, אבל לפני זה אני צריךלעלות את התוכנה לשרת וזאתי הבעייה בדיוק ממה שהבנתי Visual WebDeveloper עושה לי הכול דיילבד (ואפילו מריץ את השרת על המחשב שלי) אבל אם אני רוצה להעלות את מה שהכנתי לאתרורק לגרום לתוכנה שכתבתי לרוץ במחשב שלי (והשרת יריץ רק את הדף asmx, אך איך הוא יודע ליצור את ההתקשורת עם התוכנה במחשב שלי?)
פורסם 2010 באפריל 115 שנים אתה מעלה המון נקודות ובעיות, אך לא באופן מסודר מספיק. אני מקווה לענות לך על הכל:1. יש לך אפליקציה (לא משנה אם זה dll קובץ הרצה או אפילו webservice - לא משנה!!!). אתה רוצה להעיל פונקציות באפליקציה בעזרת webservice אחר. ישנן 2 פתרונות לבעיה:1א. הפתרון שאתה ביצעת - בdll שמקושר לwebservice אתה טוען פונקציות ואתה מבצע קריאה למתודת web שמייישמת את הקריאה אליה :HelloWorld() 1ב. לא מה שעשית - משתמש באובייקט com שינהל לך את הכל.הכיוון שלך נכון. אבל או שתצטרך לבצע קריאה - ז"א שהאפליקציה והwebservice server הם על אותו מחשב, או שתנסה את שיטה 1ב ואז הניהול הוא על בסיס מערכת ההפעלה.לשילוב webservice בphp חפש בספריה של php.http://php.net/manual/en/refs.webservice.phpאין הבדל בשימוש בPHP או ASP - למעט ההדל בשפות.ורק לגרום לתוכנה שכתבת לרוץ במחשב אחר - האם שני המחשבים על אותה רשת?
פורסם 2010 באפריל 215 שנים מחבר שלום ותודה רבה על התשובה...!בעיקרון השרת והמחשב שאמור להריץ את התוכנה הם אינם באותה הרשת,השרת מרוחק, והמחשב שלי הוא זה שיריץ את התוכנה שאמורה להדליק את הלדים.אם כן, אני אצטרך להישתמש בשיטה 1ב, אך מה ז"א להישתמש באובייקט com?חשבתי בהתחלה לכתוב פשוט את הדף ב-ASP .Net ולהישתמש ב-TcpClient כדי להיתחבר למחשב שלי (והמחשב שלי יריץ את הTcpListener)בכדי להיתחבר, אבל אני משער שזו לא דרך נכונה.
פורסם 2010 באפריל 315 שנים תראה - הכל אפשרי. זו שאלה של צורך1. למה שהמחשב שמדפיס לא יהיה גם המחשב שמארח IIS?2. אם תממש תקשורת ב tcp - איך תוכל להבטיח שאתה יודע מה קורה על המחשב המדפיס?
פורסם 2010 באפריל 315 שנים מחבר 1. אתה מתכוון שהמחשב שמריץ את האתר ומתחברים אליו יהיה גם זה שהתוכנה תרוץ עליו?בעיקרון, אני לא רוצה להריץ את השרת על המחשב שלי, בגלל שהוא לא כול הזמן יהיה דלוק, ההתחברותאליו תיהיה הרבה יותר איטית מהשרת שכבר יש לי, אני רוצה שהאתר תמיד יהיה זמין.2. כן שיערתי שזה רעיון פחות טוב, רק חשבתי כי אני יותר מתנסה עם המחלקות הללו.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.