Har min dator som server, tänkte om man kan på nått sätt kolla uptimen på servern med hjälp av vb.net. Sedan se någon statistik på hur många timmar den har varit igång senaste månaden, året. osv. Här har du en kodsnutt. Nu är den i C# men som sagt tidigare, det är samma funktioner man anropar i vb.net. okej. Om man nu ska lägga in det här i en code-behind fil hur blir det då? Retunerar funktionen Write något? ;) hmm, är jag blind eller nått hittar det itne :-) antagligen ;) ah, vad dum jag var :-) Hmm, du kan inte importera Server.MachineName. Det är ju en egenskap som returnerar en sträng :) okej, hur ska man lösa det här? Jadu; vb.net har inget inbyggt stöd för att tolka c# kod ;) :) typ nej ;) typ tack :) Magnus, Sorry, kan inte vara tyst, bara måste fråga. Jag vet inte, "nya saker" man blir osäker, eller nått. I VB.NET använder man &, inte + när man sätter ihop strängar och så måste man sätta ett _ om du ska radbryta. Jag hamnar nog i den katogorin, jag har boken ASP.NET steg för steg som jag läser vid sidan om när jag håller på med sådana här mindre applikationer. Vill inte vara taskig men jag håller med Andreas. Kan även tillägga att eftersom du lagt koden i en sub så måste subben köras nånstans, antingen i Page_Load eller med en knapptryckning.Kolla uptime på en server med hjälp av vb.net
Vet någon om det finns nått script att ladda hem till detta, om inte, nån som har nått tips på hur man kan lösa det? Sv: Kolla uptime på en server med hjälp av vb.net
http://www.codeproject.com/aspnet/web_server_uptime.aspSv: Kolla uptime på en server med hjälp av vb.net
<code>
Imports Server.MachineName
Public Class uptime
Private sub uptime()
Dim lbl As Label
PerformanceCounter pc = new PerformanceCounter("System",
"System Up Time");
//Normally starts with zero. do Next Value always.
pc.NextValue();
TimeSpan ts = TimeSpan.FromSeconds(pc.NextValue());
lbl.text = Response.Write("This system " + Environment.MachineName +
" has been up for " + ts.Days + " days " + ts.Hours +
" hours, " + ts.Minutes + " and " + ts.Seconds +
" seconds.");
End sub
End Class
</code>Sv: Kolla uptime på en server med hjälp av vb.net
Testa att ta bort Response.Write så ska det nog fungeraSv: Kolla uptime på en server med hjälp av vb.net
Sv: Kolla uptime på en server med hjälp av vb.net
<code>
lbl.text = Response.Write("This system " + Environment.MachineName +
" has been up for " + ts.Days + " days " + ts.Hours +
" hours, " + ts.Minutes + " and " + ts.Seconds +
" seconds.");
</code>
ska vara:
<code>
lbl.text = "This system " + Environment.MachineName +
" has been up for " + ts.Days + " days " + ts.Hours +
" hours, " + ts.Minutes + " and " + ts.Seconds +
" seconds.";
</code>Sv: Kolla uptime på en server med hjälp av vb.net
Hur som helst får jag ett felmeddelande nu.
Server Error in '/' Application.
--------------------------------------------------------------------------------
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: BC30466: Namespace or type 'MachineName' for the Imports 'Server.MachineName' cannot be found.
Source Error:
Line 1: Imports Server.MachineName
Line 2:
Line 3: Public Class uptime
Source File: c:\inetpub\wwwroot\server\random.vb Line: 1 Sv: Kolla uptime på en server med hjälp av vb.net
En enkel sökning på google efter "PerformanceCounter" gav mig svaret att namespacet System.Diagnostics måste importeras.Sv: Kolla uptime på en server med hjälp av vb.net
Server Error in '/' Application.
--------------------------------------------------------------------------------
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: BC30684: 'PerformanceCounter' is a type and cannot be used as an expression.
Source Error:
Line 8: Dim lbl As Label
Line 9:
Line 10: PerformanceCounter pc = new PerformanceCounter("System",
Line 11: "System Up Time");
Line 12:
Source File: c:\inetpub\wwwroot\server\random.vb Line: 10 Sv: Kolla uptime på en server med hjälp av vb.net
<codec#>
PerformanceCounter pc = new PerformanceCounter("System",
"System Up Time");
</code>
är c#
<code>
Dim pc As New PerformanceCounter("System", "System Up Time")
</code>
är vb.netSv: Kolla uptime på en server med hjälp av vb.net
Hur blir det här i vb?
pc.NextValue();
TimeSpan ts = TimeSpan.FromSeconds(pc.NextValue());
typ nått sånt här?
pc.NextValue()
Dim TimeSpan ts as new TimeSpan.FromSeconds(pc.NextValue())Sv: Kolla uptime på en server med hjälp av vb.net
<code>
pc.NextValue()
Dim ts as TimeSpan = TimeSpan.FromSeconds(pc.NextValue())
</code>Sv: Kolla uptime på en server med hjälp av vb.net
Vad ska man importera för att TimeSpan ska fungera?
Får det här felmeddelandet:
Type 'TimeSpan' is not definedSv: Kolla uptime på en server med hjälp av vb.net
Du ska importera <b>System</b> bara =)Sv: Kolla uptime på en server med hjälp av vb.net
Magnus, ditt vb.net förslag ovan som är fel, såg du inte det själv?
En sak som förvånar mig varje gång någon ska konvertera C# till VB.net eller tvärtom är varför det ska vara så svårt.
Om man kan det ena språket så vet man väl hur man kodar saker och ting, som t.ex. hur man deklarerar variabler som i exemplet ovan.Sv: Kolla uptime på en server med hjälp av vb.net
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: BC30201: Expression expected.
Source Error:
Line 15: Dim ts as TimeSpan = TimeSpan.FromSeconds(pc.NextValue())
Line 16:
Line 17: lbl.text = "This system " + Environment.MachineName +
Line 18: " has been up for " + ts.Days + " days " + ts.Hours +
Line 19: " hours, " + ts.Minutes + " and " + ts.Seconds +
Source File: c:\inetpub\wwwroot\server\random.vb Line: 17 Sv: Kolla uptime på en server med hjälp av vb.net
Sv: Kolla uptime på en server med hjälp av vb.net
Jag har sagt det förut och jag säger det igen (inte enbart riktat till dig Magnus). Det finns inga genvägar till att lära sig programmera. Ska man sen bli en dukrig programmerare ligger det ännu mer arbete och väntar på att man skall bearbeta.
Att försöka lära sig saker samtidigt som man skall skriva ett program är värdelöst och sparar inte på något sätt tid i inlärningen, tvärtom. Som exempel kan vi ta denna tråden som är 2 dagar gammal för en väldigt enkel kodsnutt. Om den tiden hade spenderat att läsa på grunderna hade problemet varit löst nu, samt att en massa annan information hade hunnits läsas in.
Det är det gamla gods receptet som gäller; Läs. Läs literatur (finns massor av bra och billig literatur på både svenska och engelske) och massor med gratis resurser på nätet, bla från Microsoft och här på pellesoft (google är inte en dum resurs iheller).
Ännu en gång, och detta är inte direkt riktat till dig Magnus - du avgör själv om du tycker att du hamnar i denna kategori, ta er tiden att lära er grunderna innan ni försöker skriva programmen som skall förändra världen.Sv: Kolla uptime på en server med hjälp av vb.net
Det är i alla fall hur jag fungerar jag lär mig "mindre" när jag bara läser och läser. Jag måste göra mer "praktiska" grejor eller vad man ska kalla det för att förstå bättre.
Det är så jag fungerar när jag lär mig saker, det är inte bara när det gäller programmering.
ontopic:
Verkar fungera nu, men det kommer inte fram någon text.
Så här är koderna nu.
sidan
<code>
<%@ Page Language="vb" Src="random.vb" Inherits="uptime" %>
<asp:label id="lbl" Runat="server" />
</code>
codebehind
<code>
Imports System
Imports System.Diagnostics
Imports System.Web.UI
Imports System.Web.UI.WebControls
Public Class uptime
Inherits Page
Private sub uptime()
Dim lbl As Label
Dim pc As New PerformanceCounter("System", "System Up Time")
'Normally starts with zero. do Next Value always.
pc.NextValue()
Dim ts as TimeSpan = TimeSpan.FromSeconds(pc.NextValue())
lbl.text = "This system " & Environment.MachineName & _
" has been up for " & ts.Days & " days " & ts.Hours & _
" hours, " & ts.Minutes & " and " & ts.Seconds & _
" seconds."
End sub
End Class
</code>Sv: Kolla uptime på en server med hjälp av vb.net
Om du gick igenom boken och gjorde exemplen, gick igenom tutorials på asp.net m.m. så skulle du inte behöva ställa de här frågorna.
Just nu så deklarerar du en label med namnet lbl i din Sub. Den blir då lokal för subben och har inget att göra med den label du har på din .aspx sida.
Så gör dig själv en tjänst. Gå igenom grunderna först innan du börjar med mindre applikationer. De fel du gjort i den här tråden är väldigt grundläggande och hade aldrig uppstått om du gått igenom 3-4 exempel på asp.net eller i din bok.Sv: Kolla uptime på en server med hjälp av vb.net