659
צפיות
צפיות
4
תשובות
תשובות
שימוש בקוד vbscript בדף asp.net
שלום, יש לי סקריפט ארוך ב vbscript ואני רוצה שהוא ישתמש ברכיב של .NET
אין לי בעיה להשמש ברכיב בדף ASPX ואין לי בעיה להשתמש בסקריפט בדף ASP (או VBS) השאלה היא איך אני עושה ש Class שנכתב בסביבת .NET יוכל להיות נגיש לסקריפט (להכניס את הסקריפט לASPX, או הפוך, להנגיש את הclass ל ASP).
ניסיתי להגדיר פשוט את הסקריפט כ vbscript
<script language=vbscript runat=server>
אבל הוא מתעקש להתייחס אליו כ VB,
(הסקריפט הוא מעל 1000 שורות והוא עובד טוב ככה שלא בא לי לשכתב אותו…),
תודה.
4 תשובות
המממ
שתי אפשרויות:
1. אם יש לך גישה לשרת אז תקמפל, תשים בתוך אובייקט COM ותקרא לקוד.
2. אם לא, שים את הקוד בדף ה ASP, שלח לו בקשה ותראה מה הוא מחזיר.
שתיהן עקומות. עדיף לתרגם לדוט נט
אגב, זה גם לא מסובך כל כך
תנסה את זה
אבל תצטרך לתת הרשאות ביצוע למשתמש איי.אס.פי דוט נט בשרת שלך למחיצה שבה נמצא הסקריפט
<%@ Page Language="C#" Debug="true"%>
<%@ Import Namespace="System"%>
<script runat="server">
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.startInfo.FileName = "c:windowssystem32cscript.exe";
proc.startInfo.Arguments = Server.MapPath("hello.vbs");
proc.startInfo.UseShellExecute = false;
proc.startInfo.CreateNoWindow = true;
proc.startInfo.RedirectStandardOutput = true;
proc.startInfo.RedirectStandardError = true;
//Start the Process.
proc.start();
proc.WaitForExit();
response.write(proc.StandardOutput.ReadToEnd());
</script>
<HTML><HEAD><TITLE>Orders Report</TITLE></HEAD>
<BODY>
<DIV align=center>
</DIV>
</BODY>
</BODY>
</HTML>
והנה גרסה בvb.net + תמיכה בעברית
<%@ Import Namespace="System.IO"%>
<%@ Page CodePage=1255 %>
<script language="VB" runat="server" Codepage=1255>
function hebEncode(txt) 'encode Hebrew Chars
dim i, pAsc as Integer
Dim p as String
hebEncode =""
for i = 1 to len(txt)
p = mid(txt,i,1)
pAsc = asc(p)
if pAsc>223 and pAsc<251 then p = server.htmlEncode(p)
hebEncode = hebEncode & p
next
end function
Sub Page_Load(sender As Object, e As EventArgs)
Dim output As String
Dim p as new System.Diagnostics.Process
p.StartInfo.FileName = "C:WINDOWSsystem32cscript.exe"
p.StartInfo.RedirectStandardOutput = True
p.StartInfo.RedirectStandardError = True
p.StartInfo.UseShellExecute = False
p.StartInfo.Arguments = "C:inetpubwwwroottesttest.vbs //Nologo"
p.Start()
p.WaitForExit()
output = hebEncode(p.StandardOutput.ReadToEnd)
Label4.text=output
Response.write("הפעולה בוצע בהצלחה")
p.Close()
p.Dispose()
End Sub
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Strict//HE">
<HTML xmlns:asp>
<HEAD>
<TITLE></TITLE>
<META http-equiv="Content-Type" content="text/html; charset=windows-1255">
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<asp:Label id="Label4" runat="server"></asp:Label>