Programmatically Modifying A File On Windows Server 2008
Nov 23, 2009
I have written a VB.NET 2008 application, incorporating Microsoft.Office.Interop.Excel, that modifies an existing Excel 2007 spreadsheet. It works perfectly on my WinXP development computer.When I upload the app to a Microsoft Web Server 2008, it opens the file and reads from the file, but when the app tries to save the file, it throws this exception:"System.Runtime.InteropServices.COMException (0x800A03EC): 'july2009.xlsx' is read-only. To save a copy, click OK, then give the workbook a new name in the Save As dialog box."The file is NOT read-only, nor is it opened by any other user or app.The app and the Excel file both reside on the D: (data-only) drive.My first instinct was to look at file permissions. When nothing else worked, I literally created a temporary Group, added EVERY user and security entity to it and granted the group full control of the entire D: drive. No luck.
Then I tried manually elevating the permission by running my app as administrator. No luck.Finally, I copied the file to my XP development computer and ran the app there. Of course it worked perfectly.Can anyone please tell me how to give my program permission to edit a file on Server 2008?
I'm trying to update some data fields in an existing data table, and want to access the data directly. I know it's possible, and I used to do it years ago in VBA, where you could do things like
I have some code to create a Virtual Directory programmatically.
I need to edit handler mappings of framework 2.0 to use .net 4.0 (basically run .net 2.0 code under .net 4.0 CLR).
The code below works fine under win 2003 server, but on Windows 2008 server webservicefactoryHandler2.0 is renamed as webservicefactoryHandler4.032_1245.
I don't know how to access/edit this name or infact retain the name and just change its value to Microsoft.NETFrameworkv4.0.30319aspnet_isapi.dll from Microsoft.NETFrameworkv2.0.50727aspnet_isapi.dll.
Dim scriptMapVals As PropertyValueCollection = VDir.Properties("ScriptMaps") Dim objScriptMaps As ArrayList = New ArrayList() Dim frameworkVersion As String = "4.0.30319"
[Code].....
Update: @kev : So basically you are saying to use different code for different version of IIS right? Well while using import "Microsoft.Web.Administration.dll" , do i need to pack it up in my build ? or this is part of all IIS7.0 installables? as Some poeple could have IIS7.0 on Windows XP.
Using VB6 to create a file and then open the file just created fails when run on a Vista client with Windows 2008 Server. The same code will work when run directly on the Windows 2008 Server or when using an XP client. If a Sleep 10000 is placed after the close, the program will work. What is the problem here? The code is as follows:
Option Explicit Private Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" _ (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, _
I have a .net Windows Service developed in VB.net. I have a settings file in the root directory called Connections.XML and I am setting the basedirectory [code]...
When I schedule the service this is working absolutely fine in my Windows XP machine. But when I installed the same service in our development server (Windows 2003 64 bit Server) for some reason it is not able to locate this file.
We are currently using Access 97 as our database. This resides on the remote farm server (which is a Windows 2008 R2 server). We are using a front end vb6 exe which accesses the back end data.Occasionally we are getting corruption to our database and we have to make sure everyone exits the software to allow us to repair/compact it. There are 2 physical servers, each running 2 virtual machines. When the user logs onto the farm using RDP, they go to one of these 4 virtual machines.We are getting all kinds of corruption, some where # characters have been inserted into the top of one table, some where the indexes are corrupted, and some where access needs to repair the database.
I have a utility that is a simple exe that is not installed compiled with VS2005 and works well. But when I upgraded to VS2008 the utility can no longer locate files in the active system folder. I have UAC turned off and am logged in as the Administrator and it still can not locate a file that I can see in Windows Explorer. The file I am looking for is PakMgr.exe.
We recently upgraded our job server to Windows Server 2008. We have jobs we run manually in a folder (c:Custom Programs). Some programs are console programs others are have a gui. This one program has a gui.It also has a progress bar that shows the progress of the job when you click the go button. Of course it spawns a thread to do the processing. This thread creates a log file to write errors and other things too.
The problem is when the program goes to create the log file an access not authorized error is thrown. I checked the permission on the folder. All users are allowed to create/edit/append/execute. Pretty much everything except take ownership. Also, there's nothing that denies anything. So I see no reason why this isn't working. We can get this to work by using the run as administrator option when we first run the program. However, we don't view this as unacceptable solution. My only thought is the spawned thread isn't getting the same permission set as the program. Am I correct or does something think it's something else.
I've been trying for a long time to create a sorted table of values in a particularly specific way, and I seem to be running into a wall in .NET's file operations. The premise is this - I'm creating a table of values which are being stored as [1 Byte][2 Bytes][3 Bytes]. The location within the file is a value that relates to these three stored values, and so I'm attempting to seek to a specific position in the file, write the 6 bytes into that position, and repeat. There are literally billions of these values, and the total file size is over 100 GB.
Now, I've tried multiple methods to do this, but every single time, it decides it needs to rewrite the ENTIRE FILE every time any change is made. This results in every one of these billions of iterations taking a good 15 minutes, making the task literally impossible. I'm using .NET 4, and I've attempted to use Text, Binary, and Random Access to get it not to rewrite the entire file every edit, but it simply will not obey.
So my question boils down to this: How do I edit specific bytes in a file without writing more than just those bytes? The entire file has been pre-created to the precise size required, and no bytes will be added or deleted in the process. I simply need to overwrite the bytes that already exist.
I found a CSS file while I was searching for how to create tabs without using images. I came across CSS Tabs 2.0. which serves my purpose.However, now I need to customize it to fit my asp.net page, and I can't seem to be able to get anywhere.The CSS file uses a
<ul and an <li
I am using a Table with <tr> and <td>
This is the sample code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
I have to convert this as stated. I am trying to retrive the next position line in an .txt file based upon a user's integer.Basically retrive the next .txt line from user input to an lbldisplay.
Option Explicit On Option Strict On Option Infer Off Public Class frmMain
I'm trying to access a database (SQL Server 2008 express) using Visual Basic 2010 Express. First I got a permission error that was solved modifying the Database permissions. Now I get a new error message "This file is in use. Enter a new name .." I already have changed the Autoclose propertie to true, and also tried detaching the Database.
I'm using Windows Vista Home Premium, my string: Data Source=.SQLEXPRESS;AttachDbFilename="C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQL10MSSQLDATAemplo1.mdf"; Integrated Security=True; Connect Timeout=30; User Instance=True
I have developed a VB.NET program using a strongly typed dataset. This dataset has its connection to a SQL Server 2008 R2. The software should now be additionally used offline. The database should be exported to a *.sdf database. If no connection to the SQL server is produced, the software have to try to connect to the *.sdf database.I would like to achieve:
1. Export the data in the SQL Server 2008 R2 database to a local *.sdf file.
2. This *.sdf file has to work as an alternate connection string in the strongly typed dataset.
1. The application's text box controls are entered manually in my.settings (e.g., tb1, tb2, tb3)
2. The application user "adds" a row of text boxes, which are iteratively assigned a name to match the above my.settings names
3. Upon "save" by user, the text in each text box is associated with its control (e.g., If cntl.Name = "tb1" then My.Settings.tb1 = cntl.Text)
4. The User needs to delete one or more rows previously added
Question:Under #4 of above, what is the best way to delete the rows and how can I use the app.config file to update the above data so I can reuse the named text boxes and keep everything sequential?
I modified some code to suit one of my other programs, but have come across a difficulty: For some reason, the output file is not outputting. I can tell all the calculations are being made (my computer is loud), but it's just not outputting.What should I look out for when modifying stanav's code that would cause the output file not to be outputted ?
Does VB 2010 offer native support for reading and modifying ID3 metadata in MP3 files? A brief search through MSDN shows me nothing, and I see someone says he had to write his own library of code for it. But that was some years ago, when you had to write code to access JPEG Exif metadata, and I know that's changed with the Image class and the GetPropertyItem method; so I'm hoping MP3 files have their own methods and properties now for this.
I am trying to move from the old ADO to the new ADO .NET . However , no matter how many tutorials I read over the internet , I still can't find a way to do something which , as I believe , has to be very simple I tried to mimic the way the graphic control did but I am missing some things ... I noticed that , in the graphic way , the wizard created 4 controls :- a DataGridView control- a DataSet control- a BindingSource control- a TableAdapter controlI recreated all of them and filled their correspondent properties , but yet I can't make it work . I think what I am missing is the connection itself . I looked on the internet and I think a connection can be made and opened like this :
Dim DataBaseConnectionMY As New OleDb.OleDbConnection DataBaseConnectionMY.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source = C:ProsoData.mdb"
I've got several methods that all need to add items to a single list which will eventually be used to populate a listview. I thought about declaring the list at class level so that all of these methods could access it, but it didnt really make sense as the only methods that access this list are Shared methods, so I didnt think it was worth having a list just sat there for the entire time that any instances of the class are created, when in a lot of cases the list would not be used.
So what I ended up doing was just declaring the list in the Shared method that then calls these other methods that need to add to the list, and for each of these methods it calls it passes the list in as an argument. The methods can then add items to the list and as the list is a reference type it updates the underlying list object, so once all of the methods have been called then the list in the calling method is up to date and can be used. Then when that method exits, the list is no longer in scope and so is removed from memory. This all works fine, but it feels a bit... wrong. Would it be better to just declare the list at Class level and not be bothered about the small overhead of the list always being in scope when instances of this class are created that will not even use the list?
EDIT: Actually, thinking about it.. because the methods that use the list are shared then the list would need to be shared as well if it was at class level - so the list would not only be around when instances of the class are created, but all of the time. So it will just be sat in memory for the lifetime of the program wont it? I assume this could make a noticeable impact on memory usage after the list has been filled with data, so I guess if I went down that route then I would have to make sure I cleared the list once I had populated the listview. This is another reason why it just seems much easier and more manageable to declare the list as a local variable in the shared method that then calls the other methods that also add to the list.
I am facing problem in displaying VB 6.0 windows form when it is accessed from activeX control on windows server 2008 Is there any work around or any patch available to resolve this issue
We have migrated one of our websites from a windows 2003 machine with IIS5 installed.Search within the website also used an indexing service to search within a Catalog "index_pdf".The catalog indexed a folder on the server and Adobe iFilter 6.0 was used to be able to search through the pdf files. While migrating, we switched to another OS -> Windows 2008 (x86). On this machine we installed but now searching through .pdf documents doesn't work. We tested the website on a different server with different versions of PDF iFilters but unfortunatly without any result. Even on a Windows 2008 (x64) server with the 64 bit version of Adobe PDF iFilter we couldn't search through .pdf files.
Our findings:The classic Indexing Service in combination with classic ASP works. (filtering on pdf hasn't been tested)The classing Indexing Service in combination with ASP.NET doesn't work.On windows 2008 servers we have to use Windows Search, because IIS7.x communicates on a different way with the Indexing Service.Now we have to find a way to rewrite our excisting VB.NET code to a way in which it wil work with the new Indexing Service which we don't know to well yet.My question is how to approach this.
I am NOT allowed to install into Windows Server GAC. I am allowed to upload my program files to a shared drive, not the operating system drive.To begin, I created a simple Class Library .dll and uploaded the entire project folder to the shared drive. I have absolute permission to do anything with this drive and the computer. This class library has only (1) public property.I created a client exe. with a reference to the shared drive .dll. I do not want a local copy of the .dll into my client folder. I want all clients to use this shared copy on my shared drive. And I repeat, I do not want to install into the GAC. I also have full permissions on my terminal.I have created a key file (.snk) for my .dll, and set up assembly information (public id) and tested.I have tried without key(.snk file), and removed assembly information, and tested.Can someone point me into the direction to install/or not to install a MyClass.dll on a shared driveand be able to reference it from other applications?I do not want to use ASP.NET. This is just a base class. This is not a Web service. It seems Windows server 2003 wants this installed into the GAC (C:WindowsAssembly)I have to be missing something.
I have programs written in VB2005 accessing mdb database in server. When the server run XP, it was never a problem (at the time, the folder was shared to all). There is a new rule in the company and we have Win 2003 server, and my mdb file must be stored in a folder in the server that the administrator (not I) have installed password. And clients are supposed to access it as user only. I can ask password as administrator, but the users of my program must not have the administrator password (which I can included in my program if necessary). How can I modify my program so that it can access the database? I assume I must modify my connection string, but I do not know how. I am currently using this: